Похоже, эта проблема связана с IDE WebStorm. Я сообщил WebStorm. И трек here.Как явным образом использовать типы lib.d.ts?
Я использую Угловые 2 с машинописью 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 думает, что это location
от Угловая 2.
Вы можете видеть на скриншоте ниже, что все функции, которая принадлежит Location
от Угловое 2 .
Одним из способов является использование 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
}
}
Что произойдет, если вы удалите ' "Lib": [ "ES6", "дом"]' линия от ' tsconfig.json'? –
@NitzanTomer все еще такой же –
Должно быть замешательство между [угловым расположением] (https://github.com/angular/angular/blob/master/modules/%40angular/common/src/location/location.ts#L47) и [встроенное местоположение] (https://developer.mozilla.org/en-US/docs/Web/API/Location), почему я не уверен. Является ли это просто ошибкой intellisense или сбою компиляции? Вы пытались запустить его? Сбой также во время выполнения? –