Я получаю красную ошибку squiggly intellisense в TypeScript 2.1.4, обновление Visual Studio 2015 3, говорящее Не удается найти имя «Promise», например, следующий код показывает ошибку на оба использование Promise:ТипScript Не удается найти имя «Promise» intellisense error
/// <reference path="../typings/index.d.ts" />
import 'fetch';
import {HttpClient, json} from 'aurelia-fetch-client';
import {inject} from 'aurelia-framework';
import {BearerToken} from './common/bearer-token';
export class ApiToken
{
....
public getTokenSimplified(): Promise<BearerToken>
{
let tokenResult: BearerToken;
let p = new Promise<BearerToken>(function (resolve, reject)
{
// my code ommited
});
return p;
}
....
}
машинопись компилируется без ошибок, так что я могу получить с этим, но я хотел бы найти решение. Кто-нибудь знает, как это решить? Изучив StackOverflow и Github Я попытался следующие:
НПМ установить ES6-обещание --save и импорт {} Promise из 'ES6-обещание' добавлен в верхней части исходного файла
Это приводит к тому, что красная squiggly исчезает, но приводит к ошибке сборки. «Тип Promise не может быть присвоен типу Promise. Существуют два разных типа с этим именем, но они не связаны».
Установка и ссылка на ts-обещание npm несет ту же ошибку «Два разных типа с этим именем существуют».
типизации установить дт ~ ES6-прокладка --save --global
Это вызывает повторяющиеся определения, например, Дубликат идентификатор 'PropertyKey' в lib.es2015.core.d.ts
типизации установить дт ~ ES6-обещание параметра --save --global
Это приводит к ошибке Дублировать идентификатор 'Promise' в lib.es2015. iterable.d.ts
типизации установить Bluebird --source НПМ --save
Это терпит неудачу с ошибкой времени компиляции «Тип Promise не присваиваемые типа„Bluebird“», потому что HttpClient возвращает Javascript Обещания, не Обещает Синяя птица.
НПМ установки ES6-прокладка --save и НПМ установить @ типов/ES6-прокладка --save-DEV
Это вызывает повторяющиеся определения, например, Дубликат идентификатор 'PropertyKey' в lib.es2015.core.d.ts
НПМ установить ES6-обещание --save и НПМ установить @ типов/ES6-обещание --save-DEV
причины ошибки Дубликат идентификатор «Promise» в lib.es2015.iterable.d.ts
в tsconfig.json, изменяющий «lib»: ["es2015", "dom"] в "lib": ["es2015", "es2015. обещание "," dom "] не устраняет проблему.
tscconfig.json следующим образом:
{
"compileOnSave": false,
"compilerOptions": {
"rootDir": "src",
"outDir": "dist",
"sourceMap": true,
"target": "es5",
"module": "amd",
"declaration": false,
"noImplicitAny": false,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"lib": ["es2015", "dom"],
"baseUrl": "./",
"paths": {
"src/*": ["src/*"]
}
},
"filesGlob": [
"./src/**/*.ts",
"./test/**/*.ts",
"./typings/index.d.ts",
"./custom_typings/**/*.d.ts",
"./jspm_packages/**/*.d.ts"
],
"exclude": [
"node_modules",
"jspm_packages",
"dist",
"build",
"test"
],
"atom": {
"rewriteTsconfig": false
}
}
Может быть, я не ссылающийся на необходимую библиотеку правильно, так что если кто-то может указать на ошибку, я ценю это.
Добавление "es6" в tsconfig.json не имеет значения. Других недостающих типов нет. – Alastair
@Alastair Promise определен в lib.es2015.iterable.d.ts Путь к стандартной установке: C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TypeScript \ lib. es2015.iterable.d.ts Существуют ли другие версии TypeScript, чем 2.1.4? Вы установили проект Aurelia Aurelia-CLI? –
Myrddhin
Что касается версии TypeScript: я использую 2.1.4, который указан в PATH, а также в элементе TypeScriptToolsVersion проекта. Wnen я установил TypeScript 2.1.4, установленный в C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript \ 2.1, однако указанный вами файл также существует. WinMerge показывает, что оба файла практически идентичны (Promise и все остальные определения одинаковы), хотя версия в Microsoft SDK также включает в себя определение интерфейса ReadonlyArray. –
Alastair