Ответ 1
Вам нужно сообщить компилятору, что он был объявлен:
declare var bootbox: any;
Если у вас есть более качественная информация о типе, вы можете добавить это тоже вместо any
.
У меня есть файл машинописного текста под названием Projects.ts
, который я хочу сослаться на глобальную переменную, объявленную в плагине начальной загрузки 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
.
Как вы говорите компилятору, я знаю, что эта переменная будет иметь значение во время выполнения, поэтому не бросайте ошибку компиляции.
Если это то, что вы ссылаетесь, но не мутируете, используйте const
:
declare const bootbox;
Решения Sohnee чище, но вы также можете попробовать
window["bootbox"]
Если вы хотите иметь ссылку на эту переменную во всем проекте, создайте где-нибудь файл d.ts
, например, globals.d.ts
. Заполните его объявлениями глобальных переменных, например:
declare const BootBox: 'boot' | 'box';
Теперь вы можете ссылаться на него в любом месте проекта, просто так:
const bootbox = BootBox;
Вот пример example.
Загрузите варианты загрузки в
Затем добавьте ссылку на него в ваш файл .ts.