猿问

Angular:找不到Promise,Map,Set和Iterator

安装角之后,打字稿编译器不断收到一些错误约没有找到Promise,Map,Set和Iterator。


到现在为止我忽略了它们,但现在我需要Promise这样我的代码可以工作。


import {Component} from 'angular2/core';

@Component({

    selector: 'greeting-cmp',

    template: `<div>{{ asyncGreeting | async}}</div>`

})

export class GreetingCmp {

    asyncGreeting: Promise<string> = new Promise(resolve => {

// after 1 second, the promise will resolve

        window.setTimeout(() => resolve('hello'), 1000);

    });

}


Additional information:

npm -v is 2.14.12

node -v is v4.3.1

typescript v is 1.6

错误:


................ERROS OF MY CODE.................

    C:\Users\armyTik\Desktop\angular2\greeting_cmp.ts

    Error:(7, 20) TS2304: Cannot find name 'Promise'.

    Error:(7, 42) TS2304: Cannot find name 'Promise'.

    .........................................

    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\platform\browser.d.ts

    Error:(77, 90) TS2304: Cannot find name 'Promise'.

    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\application_ref.d.ts

    Error:(83, 60) TS2304: Cannot find name 'Promise'.

    Error:(83, 146) TS2304: Cannot find name 'Promise'.

    Error:(96, 51) TS2304: Cannot find name 'Promise'.

    Error:(96, 147) TS2304: Cannot find name 'Promise'.

    Error:(133, 90) TS2304: Cannot find name 'Promise'.

    Error:(171, 81) TS2304: Cannot find name 'Promise'.

    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\change_detection\parser\locals.d.ts

    Error:(3, 14) TS2304: Cannot find name 'Map'.

    Error:(4, 42) TS2304: Cannot find name 'Map'.

    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\debug\debug_node.d.ts

    Error:(14, 13) TS2304: Cannot find name 'Map'.

    Error:(24, 17) TS2304: Cannot find name 'Map'.

    Error:(25, 17) TS2304: Cannot find name 'Map'.

    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\di\provider.d.ts

    Error:(436, 103) TS2304: Cannot find name 'Map'.

    Error:(436, 135) TS2304: Cannot find name 'Map'.


米琪卡哇伊
浏览 799回答 3
3回答

慕容3067478

我也有同样的问题 - “未找到承诺” - 当代码想要创建一个Promise对象时。尝试在stackoverflow上找到一些解决方案,包括取出System.config({...})以形成system.js并将其包含在index.html中的解决方案。最后我解决了这个问题。问题是,在index.html中,包含了es6-shim.min.js。但是,在tsconfig.json中,“compilerOptions”下的“target”属性的值为“es5”。在我将其更改为“es6”后,错误消失了。

一只甜甜圈

Angular 2决赛- es5支持(与TS 2.0.0 +完美配合)每次更新es6-shim不支持,现在,如果你有安装在一起的两条分型es6-shim和core-js在一起。es6-shim通过在tsconfig.json中提及删除键入。您现在可以参考下面的core-js输入以获得es5支持main.ts///<reference path="./../typings/globals/core-js/index.d.ts"/>tsconfig.jsonexclude: [&nbsp; &nbsp;"node_modules", //<-- this would be needed in case of VS2015&nbsp; &nbsp;"node_modules/@typings",&nbsp; &nbsp;"typings"]- es6 suppport你只需要设置"target"属性es6,然后所有将错误消失。并且转换后的代码将采用es6格式化。
随时随地看视频慕课网APP
我要回答