我有一个Angular2应用程序,它是用WebPack构建的.我从v1升级了网页包.8到v2,一切似乎都正常.唯一的问题是,旧代码有以下内容:
import Timer = NodeJS.Timer;
....
apptInterval: Timer;
....
this.apptInterval = setInterval(() => { ... }, 1000);
升级后,这给了我一个错误:TS2503: Cannot find namespace 'NodeJS'.
tsconfig.json如下所示:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es2015", "dom"],
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
}
}
Angular/Webpack的文档不再有typings.json
个;然而,即使我从Webpack 1目录中复制,也无济于事.内容是打字.json是
{
"globalDependencies": {
"jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
"node": "registry:dt/node"
}
}
有趣的是,如果我删除对NodeJS的引用,一切都正常.这样地:
apptInterval: any;
....
this.apptInterval = setInterval(() => { ... }, 1000);
如果我在F12调试器下查看,apptInterval的类型是ZoneTask
.我相信有一种方法可以让它变得很强,但我却没有意识到.我发现的唯一建议是运行typings install dt~node --global --save-dev
(它基本上更新了typings.json,但没有帮助).