在打字稿中引用外部模块 - 错误 TS2304:找不到名称 'general'
Referencing external module in typescript - error TS2304: Cannot find name 'general'
我准备了这两个文件:
第一个是 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 端被解析为包。所以没有办法引用,使用导入,原始 general.ts 文件。
您的定义有效,因为您可以导入它...
例如,我可以这样引用 Langs
:
var x = general.General.Langs;
但是,您还没有声明 Langs
是一个 class,所以您不能像它是一个一样扩展它。
如果它是以允许您扩展它的方式实现的,将它声明为class将允许它用作基础class(证明使用 class 有效的简化示例):
declare module 'general' {
export module General {
export class Langs {
}
}
}
我准备了这两个文件:
第一个是 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 端被解析为包。所以没有办法引用,使用导入,原始 general.ts 文件。
您的定义有效,因为您可以导入它...
例如,我可以这样引用 Langs
:
var x = general.General.Langs;
但是,您还没有声明 Langs
是一个 class,所以您不能像它是一个一样扩展它。
如果它是以允许您扩展它的方式实现的,将它声明为class将允许它用作基础class(证明使用 class 有效的简化示例):
declare module 'general' {
export module General {
export class Langs {
}
}
}