我正在使用定义ts文件,但是这个文件不包含我应该在我的TypeScript代码中使用的方法。但是这个方法是在javascript文件中定义的。
TypeScript编译器写道它无法找到被调用的方法。
是否可以使用某种方法编译打字稿代码,这种方法在定义ts文件中尚未声明,但此方法是在javascript文件中定义的?
也许我可以通过调用方法来设置一些设置来编译typescript代码,而这个方法没有在d.ts文件中声明?
答案 0 :(得分:1)
是的,您要找的是Ambient Internal/External Modules
:http://www.typescriptlang.org/Handbook#modules-working-with-other-javascript-libraries
例如:
declare module D3 {
export interface Selectors {
select: {
(selector: string): Selection;
(element: EventTarget): Selection;
};
}
export interface Event {
x: number;
y: number;
}
export interface Base extends Selectors {
event: Event;
}
}
您可以将此代码放入.ts
文件中,也可以创建自己的.d.ts
文件。
答案 1 :(得分:1)
这取决于d.ts(您正在使用的库)。
TypeScript命名空间(又称模块)和接口是开放式的 - 这意味着您可以直接在代码中声明缺少的方法(不需要更改外部d.ts)。
或者,您可以在调用missing方法时将库键入any
- 然后不对库/变量进行类型检查。
var a = (<any>$).missingMethod();
答案 2 :(得分:0)
您必须在文件顶部使用/// <reference path="path/file.ts" />
从IDE(至少在Visual Studio中)获取有关该文件中可用内容的一些提示,并且还需要将其包含在您的包中或添加您的html文件中的脚本,将其包含在使用其方法的其他ts文件之前。