Tôi có một tệp bản thảo được gọi là Projects.ts
tôi muốn tham chiếu một biến toàn cục được khai báo trong một plugin bootstrap được gọi bootbox.js
.
Tôi muốn truy cập một biến được gọi bootbox
từ trong một lớp TypeScript.
Có thể không?
Tôi có một tệp bản thảo được gọi là Projects.ts
tôi muốn tham chiếu một biến toàn cục được khai báo trong một plugin bootstrap được gọi bootbox.js
.
Tôi muốn truy cập một biến được gọi bootbox
từ trong một lớp TypeScript.
Có thể không?
Câu trả lời:
Bạn cần nói với trình biên dịch nó đã được khai báo:
declare var bootbox: any;
Nếu bạn có thông tin loại tốt hơn, bạn cũng có thể thêm thông tin đó any
.
declare
câu nói đó ở đâu?
declare var myFunction: any;
nào?
declare var myFunction: (input: string) => void;
Đối với những người chưa biết, bạn sẽ phải đưa ra declare
tuyên bố bên ngoài class
như thế này:
declare var Chart: any;
@Component({
selector: 'my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.scss']
})
export class MyComponent {
//you can use Chart now and compiler wont complain
private color = Chart.color;
}
Trong TypeScript
từ khóa khai báo được sử dụng trong đó bạn muốn xác định một biến có thể không có nguồn gốc từ một TypeScript
tệp.
Giống như bạn nói với trình biên dịch rằng, tôi biết biến này sẽ có giá trị khi chạy, vì vậy đừng đưa ra lỗi biên dịch.
Nếu bạn muốn có một tham chiếu đến biến này trong toàn bộ dự án, hãy tạo một d.ts
tệp ở đâu đó , vd globals.d.ts
. Điền vào nó với khai báo biến toàn cục của bạn, ví dụ:
declare const BootBox: 'boot' | 'box';
Bây giờ bạn có thể tham chiếu nó ở bất cứ đâu trên toàn dự án, giống như vậy:
const bootbox = BootBox;
Đây là một ví dụ .
Tải xuống các kiểu chữ bootbox
Sau đó thêm một tham chiếu đến nó trong tệp .ts của bạn.