У меня есть файл typescript с именем Projects.ts
, который я хочу ссылаться на глобальную переменную, объявленную в плагине bootstrap под названием bootbox.js
.
Я хочу получить доступ к переменной с именем bootbox из классов typescript.
Возможно ли это?
Вам нужно сообщить компилятору, что он был объявлен:
declare var bootbox: any;
Если у вас есть более качественная информация о типе, вы можете добавить это тоже вместо any
.
Для тех, кто еще не знал, вам нужно поставить оператор declare
вне вашего class
следующим образом:
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;
}
В TypeScript
используется ключевое слово declare, где вы хотите определить переменную, которая, возможно, не была создана из файла TypeScript
.
Как вы говорите компилятору, я знаю, что эта переменная будет иметь значение во время выполнения, поэтому не бросайте ошибку компиляции.
@Component
- это украшение, специфичное для @Component
.
Если это то, что вы ссылаетесь, но не мутируете, используйте const
:
declare const bootbox;
Решения Sohnee чище, но вы также можете попробовать
window["bootbox"]
Загрузите файлы [bootbox typings] (https://www.nuget.org/packages/bootbox.TypeScript.DefinitelyTyped/)
Затем добавьте ссылку на него внутри вашего.ts файла.