我准备了这两个文件:
第一个是general.d.ts文件
interface IgeneralStatic {
General: {
Langs: any;
};
}
declare var general: IgeneralStatic;
declare module 'general' {
export = general;
}
第二个只是something.ts文件,我试图导入文件别名:
/// <reference path="general.d.ts" />
import general = require('general');
export class SpecificLangs extends general.General.Langs
...
}
当我尝试编译它时,我收到了这个错误:
error TS2304: Cannot find name 'general'
这样做的原因是我不知道我的模块在哪里,而且我无法导入它用于打字稿用法。它在requirejs方面作为包解析。所以没有办法使用import引用原始的general.ts文件。
答案 0 :(得分:1)
您的定义有效,因为您可以导入它......
例如,我可以像这样引用Langs
:
var x = general.General.Langs;
但是,您尚未声明Langs
是一个类,因此您无法将其扩展为一个类。
如果 以允许您扩展它的方式实现,则将其声明为类将允许将其用作基类(简化示例以演示使用类工作) :
declare module 'general' {
export module General {
export class Langs {
}
}
}