Typescript 参考其他图书馆
我希望能够从我的一个类的构造函数中引用外部库(EaselJs):Typescript 参考其他图书馆,typescript,Typescript,我希望能够从我的一个类的构造函数中引用外部库(EaselJs): export class GameCanvas { private stage; constructor() { this.stage = new createjs.Stage("canvasElementId"); // this doesn't compile } start(delay, callback) { }
export class GameCanvas {
private stage;
constructor() {
this.stage = new createjs.Stage("canvasElementId"); // this doesn't compile
}
start(delay, callback) {
}
}
这不会编译,因为它不知道什么是createjs
我可以把它传递给构造器。但是这个对象在对象图中的位置很低,所以它需要通过很多其他调用来实现
是否有其他方法可以满足Typescript编译器的要求并使其了解外部库中的对象
谢谢快速/肮脏解决方案:为createjs创建声明:
declare var createjs;
export class GameCanvas {
private stage;
constructor() {
this.stage = new createjs.Stage("canvasElementId"); // this doesn't compile
}
start(delay, callback) {
}
}
更好的解决方案。使用社区为您创建的声明:
对于EaselJS:
示例用法:我使用来自DefinetelyTyped项目的引用(它们只声明接口,满足编译器的要求)
就提供第三方引用而言,一个值得了解的特性是,如果您在ts文件的第一行中包含以下内容:
///<reference path="./ts/references.ts"/>
///
如果references.ts包括对特定其他ts文件的引用,则references.ts中指定的文件位置相对于references.ts的位置,而不是包含上述行的ts文件
如果你想玩切换实现之类的游戏,比如说从DT获得的一个版本的代码不能与特定版本的jQuery或Knockout一起使用,这是很有帮助的。检查一下,这看起来像画架依赖于tweenjs,其中有一些错误:(看起来画架依赖于tweenjs,这其中有一些错误:(你可以使用简单的声明快速fix@chicca这些错误已经修复了很长一段时间:)
///<reference path="./ts/references.ts"/>