我有一个名为的打字稿文件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
您想要定义可能不是源自TypeScript
文件的变量的地方使用 declare 关键字。
就像你告诉编译器,我知道这个变量在运行时会有一个值,所以不要抛出编译错误。
如果它是您引用但从不变异的东西,请使用const
:
declare const bootbox;
Sohnee 解决方案更清洁,但您也可以尝试
window["bootbox"]
如果您想在整个项目中引用此变量,请在某处创建d.ts
文件,例如globals.d.ts
. 用你的全局变量声明填充它,例如:
declare const BootBox: 'boot' | 'box';
现在你可以在项目的任何地方引用它,就像这样:
const bootbox = BootBox;
这是一个例子。
// global.d.ts
declare global {
namespace NodeJS {
interface Global {
bootbox: string; // Specify ur type here,use `string` for brief
}
}
}
// somewhere else
const bootbox = global.bootbox
// somewhere else
global.bootbox = 'boom'
下载引导箱类型
然后在 .ts 文件中添加对它的引用。