在与其声明相同的文件中引用模块

时间:2013-09-11 16:33:12

标签: typescript

我有以下问题:

Pixi库的TypeScript声明存在,但似乎已被打破。首先,他们从

开始
declare module PIXI

而不是

declare module "PIXI"

我不确定这是不是错了,但所有其他的decarations(对于node,socket.io等)似乎都使用字符串作为名称。当我将其更改为字符串时,它可以工作,但稍后会遇到错误。在那个PIXI模块之外有:

declare function requestAnimFrame( animate: PIXI.IBasicCallback );

现在因为我将PIXI更改为字符串(我假设),它说变量PIXI不包含名为IBasicCallback的类型。该模块确实导出了该类型,但它在它之外是不可用的。在声明文件之外,在我的代码中,我可以正常使用PIXI.IBasicCallback,但是在同一个文件中它无法识别。

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:4)

内部和外部模块(CommonJS / NodeJS,AMD / RequireJS)之间存在差异。 "SomeThing"用于外部模块。而内部模块声明没有字符串。

// Declare a external module 
declare module "Foo"{
    var foo:number; 
    export = foo;
}
// Use 
import a = require("Foo");


// Declare an internal module 
declare module Boo{
    export var boo:string;
}
// usage
var  b = Boo.boo; 

我还制作了一个关于这个主题的视频:http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1

答案 1 :(得分:0)

似乎有些模块要求你做像

这样的事情
declare module "pixi" {
    exports = PIXI;
}

手动。将其添加到说明的底部(并且不将原始声明更改为字符串)可以正常工作。