TypeScript 和 ng2 rc.1 出现错误:(20、15)TS2304:找不到名称“模块”
Posted
技术标签:
【中文标题】TypeScript 和 ng2 rc.1 出现错误:(20、15)TS2304:找不到名称“模块”【英文标题】:TypeScript and ng2 rc.1 getting Error:(20, 15) TS2304: Cannot find name 'module' 【发布时间】:2016-09-02 18:17:03 【问题描述】:TypeScript 和 ng2 rc.1 出现错误:(20, 15) TS2304: 找不到名称“模块”。
当尝试使用模块指令时
@Component(
selector: 'Notes1',
moduleId: module.id,
directives: [ModalDialog, FORM_DIRECTIVES, DisplayError],
templateUrl: 'Notes1.html',
styleUrls: ['Notes1.css']
)
知道如何修复 TS 错误。在运行时一切正常
问候
肖恩
【问题讨论】:
【参考方案1】:错误意味着 TypeScript 编译器不知道 module
是什么。快速修复:
declare var require: any;
为使其更完整,请使用来自DefinitelyTyped/node 的定义:
interface NodeRequireFunction
(id: string): any;
interface NodeRequire extends NodeRequireFunction
resolve(id:string): string;
cache: any;
extensions: any;
main: any;
declare var require: NodeRequire;
interface NodeModule
exports: any;
require: NodeRequireFunction;
id: string;
filename: string;
loaded: boolean;
parent: any;
children: any[];
declare var module: NodeModule;
【讨论】:
谢谢,是的,我已经做了同样的修复declare var module: NodeModule;
,但我想知道(抱歉我的问题没有更明确)为什么它不是 @angular2 导入语句的一部分,比如平台的其余部分,问候
模块对象在 NodeJS 中定义并在 Node 声明文件中声明。您要么没有此声明文件,要么没有在 tsconfig.json 文件中正确引用它。【参考方案2】:
我解决这个问题的方法是在我的 tsconfig 文件中像这样“moduleId”:“commonjs”这样的模块后简单地添加 Id,错误就消失了!
希望这会有所帮助, 吉姆
【讨论】:
以上是关于TypeScript 和 ng2 rc.1 出现错误:(20、15)TS2304:找不到名称“模块”的主要内容,如果未能解决你的问题,请参考以下文章
ng2-file-upload:文件 maxFileSize 在 Angular 2 中使用 typescript 限制为 < 1MB