2017-01-16 2 views
0

Я получаю красную ошибку 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 
    } 
} 

Может быть, я не ссылающийся на необходимую библиотеку правильно, так что если кто-то может указать на ошибку, я ценю это.

ответ

1

Попробуйте этот конфиг для LIBS

"lib": ["es2015", "dom", "es6"] 

Если другие типы отсутствуют (Request, Response, BufferSourceURLSearchParams ...), пожалуйста, отправьте файл typings.json.

+0

Добавление "es6" в tsconfig.json не имеет значения. Других недостающих типов нет. – Alastair

+0

@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

+0

Что касается версии 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

Смежные вопросы