为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

米琪卡哇伊 2019-09-20 15:28:17
安装角之后,打字稿编译器不断收到一些错误约没有找到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.12node -v is v4.3.1typescript 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'.
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

我也有同样的问题 - “未找到承诺” - 当代码想要创建一个Promise对象时。


尝试在stackoverflow上找到一些解决方案,包括取出System.config({...})以形成system.js并将其包含在index.html中的解决方案。


最后我解决了这个问题。问题是,在index.html中,包含了es6-shim.min.js。但是,在tsconfig.json中,“compilerOptions”下的“target”属性的值为“es5”。在我将其更改为“es6”后,错误消失了。


查看完整回答
反对 回复 2019-09-20
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

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.json


exclude: [

   "node_modules", //<-- this would be needed in case of VS2015

   "node_modules/@typings",

   "typings"

]

- es6 suppport

你只需要设置"target"属性es6,然后所有将错误消失。并且转换后的代码将采用es6格式化。


查看完整回答
反对 回复 2019-09-20
  • 3 回答
  • 0 关注
  • 760 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信