首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeScript找不到名称“承诺”智能感知错误

TypeScript找不到名称“承诺”智能感知错误
EN

Stack Overflow用户
提问于 2017-01-16 14:10:04
回答 1查看 1.2K关注 0票数 0

我在TypeScript 2.1.4中得到了一个红色的智能感知错误,VisualStudio2015Update 3说找不到名称“承诺”,例如,下面的代码显示了两种承诺用法的错误:

代码语言:javascript
复制
/// <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;
    }
....
}

TypeScript没有错误地编译,所以我可以用它来完成,但是我想找到一个解决方案。有人知道怎么解决这个问题吗?在研究了StackOverflow和Github之后,我尝试了以下几种方法:

  • npm安装ES6-允诺-保存,并从添加到源文件顶部的“ES6-诺言”导入{ top } 这确实会导致红色模糊消失,但会导致生成错误:“类型承诺不能指定键入允诺,两种不同类型的名称都存在,但它们是无关的。” 安装和引用npm的ts-允诺导致相同的“两种不同类型的名称存在”错误。
  • 输入安装dt~es6-shim -保存-全局 这会导致重复定义,例如lib.es2015.core.d.ts中的重复标识符“lib.es2015.core.d.ts”
  • 输入安装dt~ES6-允诺-保存-全局 这会导致lib.es2015.iterable.d.ts中的错误重复标识符“承诺”。
  • 输入安装蓝鸟源npm保存 这在编译时出错时失败,因为HttpClient返回Javascript承诺,而不是Bluebird承诺,因此不能指定类型为‘Bluebird’。
  • npm安装es6-shim -保存和npm安装@type/es6-shim保存-dev 这会导致重复定义,例如lib.es2015.core.d.ts中的重复标识符“lib.es2015.core.d.ts”
  • npm安装ES6-承诺-保存和npm安装@type/es6-承诺-保存-开发 在lib.es2015.iterable.d.ts中造成错误重复标识符“承诺”
  • 在tsconfig.json中,将"lib":"es2015","dom“修改为"lib":"es2015",”es2015.答应“,"dom”没有解决问题。

tscconfig.json如下:

代码语言:javascript
复制
{
  "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
  }
}

也许我没有正确引用所需的库,所以如果有人能指出错误,我会很感激的。

EN

回答 1

Stack Overflow用户

发布于 2017-01-18 00:12:45

为lib尝试此配置

代码语言:javascript
复制
"lib": ["es2015", "dom", "es6"]

如果缺少其他类型(RequestResponseBufferSource URLSearchParams、.)请发送您的typings.json文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41678311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档