似乎这个问题与IDE WebStorm有关。我向WebStorm报告。并跟踪here。
我在TypeScript 2中使用Angular 2.
如何明确使用 lib.d.ts 类型的位置?因为现在它在我的IDE WebStorm 2016.3 EAP中显示为红色:
const hostname = location.hostname;
const hostname = window.location.hostname;
我的文件中有这个:
import { Location } from '@angular/common';
constructor(private _location: Location) {}
// note there is an underline before
// and when I use in other functions, I actually use 'this._location' not just '_location'
我发现在删除import { Location } from '@angular/common';
后,错误将会消失。
我猜这个错误显示的原因是因为IDE认为这是来自Angular 2的location
。
从下面的屏幕截图中可以看到Angular 2中属于Location
的所有函数。
一种方法是使用const hostname = (location as any).hostname;
,但还有更好的方法吗?感谢
我的 tsconfig.json 如果有帮助:
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"module": "commonjs",
"removeComments": true,
"sourceMap": true,
"lib": ["es6", "dom"]
},
"include": [
"node_modules/@types/**/*.d.ts",
"src/**/*.ts"
],
"exclude": [
"node_modules",
"!node_modules/@types/**/*.d.ts"
],
"compileOnSave": false,
"buildOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
答案 0 :(得分:1)
感谢@ NitzanTomer的帮助。
似乎这个问题与WebStorm有关。
我向WebStorm报告了,你可以在这里跟踪问题: