2016-05-07 93 views
2

TypeScript和ng2 rc.1获取错误:(20,15)TS2304:找不到名称'module'。TypeScript和ng2 rc.1获取错误:(20,15)TS2304:找不到名称'module'

试图在运行时

@Component({ 
    selector: 'Notes1', 
    moduleId: module.id, 
    directives: [ModalDialog, FORM_DIRECTIVES, DisplayError], 
    templateUrl: 'Notes1.html', 
    styleUrls: ['Notes1.css'] 
}) 

使用模块的指令,因为任何知道如何解决的TS错误..一切工作正常

问候

肖恩

回答

2

时该错误意味着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; 
+0

谢谢你,是的,我已经做了同样的修复'''声明VAR模块:NodeModule;'''但我不知道(抱歉,我不是我的问题更清楚了)为什么它不是像平台其余部分一样的@ angular2 import语句的一部分,关于 – born2net

+0

模块对象在NodeJS中定义并在Node声明文件中声明。你要么没有这个声明文件,要么你没有在tsconfig.json文件中正确引用它。 – moefinley

-1

我解决了这个问题是这样的“的moduleId”模块后,只需添加编号的方法:“ commonjs“,在我的tsconfig文件中,错误消失了!

希望这有助于 吉姆

相关问题