Typescript 参考其他图书馆

Typescript 参考其他图书馆,typescript,Typescript,我希望能够从我的一个类的构造函数中引用外部库(EaselJs): export class GameCanvas { private stage; constructor() { this.stage = new createjs.Stage("canvasElementId"); // this doesn't compile } start(delay, callback) { }

我希望能够从我的一个类的构造函数中引用外部库(EaselJs):

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"/>