Angular: no se puede encontrar Promesa, Mapa, Conjunto e Iterador

176

Después de instalar angular, el torreón compilador de imprenta conseguir algunos errores por no encontrar Promise, Map, Sety Iterator.

Hasta ahora los ignoré pero ahora necesito Promisepara que mi código pueda funcionar.

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

Los errores:

................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'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\linker\compiler.d.ts
    Error:(12, 50) TS2304: Cannot find name 'Promise'.
    Error:(16, 41) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\linker\dynamic_component_loader.d.ts
    Error:(108, 136) TS2304: Cannot find name 'Promise'.
    Error:(156, 150) TS2304: Cannot find name 'Promise'.
    Error:(197, 128) TS2304: Cannot find name 'Promise'.
    Error:(203, 127) TS2304: Cannot find name 'Promise'.
    Error:(204, 141) TS2304: Cannot find name 'Promise'.
    Error:(205, 119) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\core\render\api.d.ts
    Error:(13, 13) TS2304: Cannot find name 'Map'.
    Error:(14, 84) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\async.d.ts
    Error:(27, 33) TS2304: Cannot find name 'Promise'.
    Error:(28, 45) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\collection.d.ts
    Error:(1, 25) TS2304: Cannot find name 'MapConstructor'.
    Error:(2, 25) TS2304: Cannot find name 'SetConstructor'.
    Error:(4, 27) TS2304: Cannot find name 'Map'.
    Error:(4, 39) TS2304: Cannot find name 'Map'.
    Error:(7, 9) TS2304: Cannot find name 'Map'.
    Error:(8, 30) TS2304: Cannot find name 'Map'.
    Error:(11, 43) TS2304: Cannot find name 'Map'.
    Error:(12, 27) TS2304: Cannot find name 'Map'.
    Error:(14, 23) TS2304: Cannot find name 'Map'.
    Error:(15, 25) TS2304: Cannot find name 'Map'.
    Error:(95, 41) TS2304: Cannot find name 'Set'.
    Error:(96, 22) TS2304: Cannot find name 'Set'.
    Error:(97, 25) TS2304: Cannot find name 'Set'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\lang.d.ts
    Error:(13, 17) TS2304: Cannot find name 'Map'.
    Error:(14, 17) TS2304: Cannot find name 'Set'.
    Error:(78, 59) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\facade\promise.d.ts
    Error:(2, 14) TS2304: Cannot find name 'Promise'.
    Error:(7, 32) TS2304: Cannot find name 'Promise'.
    Error:(8, 38) TS2304: Cannot find name 'Promise'.
    Error:(9, 35) TS2304: Cannot find name 'Promise'.
    Error:(9, 93) TS2304: Cannot find name 'Promise'.
    Error:(10, 34) TS2304: Cannot find name 'Promise'.
    Error:(11, 32) TS2304: Cannot find name 'Promise'.
    Error:(11, 149) TS2304: Cannot find name 'Promise'.
    Error:(12, 43) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\http\headers.d.ts
    Error:(43, 59) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\http\url_search_params.d.ts
    Error:(11, 16) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\platform\browser\browser_adapter.d.ts
    Error:(75, 33) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\angular2\src\platform\dom\dom_adapter.d.ts
    Error:(85, 42) TS2304: Cannot find name 'Map'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\CoreOperators.d.ts
    Error:(35, 67) TS2304: Cannot find name 'Promise'.
    Error:(50, 66) TS2304: Cannot find name 'Promise'.
    Error:(89, 67) TS2304: Cannot find name 'Promise'.
    Error:(94, 38) TS2304: Cannot find name 'Promise'.
    Error:(94, 50) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\Observable.d.ts
    Error:(46, 62) TS2304: Cannot find name 'Promise'.
    Error:(47, 42) TS2304: Cannot find name 'Iterator'.
    Error:(103, 74) TS2304: Cannot find name 'Promise'.
    Error:(103, 84) TS2304: Cannot find name 'Promise'.
    Error:(143, 66) TS2304: Cannot find name 'Promise'.
    Error:(158, 65) TS2304: Cannot find name 'Promise'.
    Error:(201, 66) TS2304: Cannot find name 'Promise'.
    Error:(206, 38) TS2304: Cannot find name 'Promise'.
    Error:(206, 50) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\observable\ForkJoinObservable.d.ts
    Error:(6, 50) TS2304: Cannot find name 'Promise'.
    Error:(7, 58) TS2304: Cannot find name 'Promise'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\observable\FromObservable.d.ts
    Error:(7, 38) TS2304: Cannot find name 'Promise'.
    Error:(7, 51) TS2304: Cannot find name 'Iterator'.
    C:\Users\armyTik\Desktop\angular2\node_modules\rxjs\observable\PromiseObservable.d.ts
    Error:(9, 31) TS2304: Cannot find name 'Promise'.
    Error:(10, 26) TS2304: Cannot find name 'Promise'.
Stav Alfi
fuente
1
Instale la última versión de TypeScript para Visual Studio 2015 .
mylesk

Respuestas:

177

Angular 5 con mecanografiado ^ 2.0.0

Esto también debería funcionar igual con versiones anteriores de Angular 2+.

Para que esto funcione con typecript 2.0.0, hice lo siguiente.

npm install --save-dev @types/core-js

tsconfig.json

 "compilerOptions": {
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "mapRoot": "./",
    "module": "es6",
    "moduleResolution": "node",
    "noEmitOnError": true,
    "noImplicitAny": false,
    "outDir": "../dist/out-tsc",
    "sourceMap": true,
    "target": "es5",
    "typeRoots": [
      "../node_modules/@types"
    ],
    "types": [
      "core-js"
    ]
  }

Más sobre @types con typecript 2.0.0.

  1. https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/
  2. https://www.npmjs.com/~types

Instalar Ejemplo:

npm install --save-dev @types/core-js

Errores de identificador duplicado

Esto es muy probable porque ya se están importando duplicados ecmascript 6 tipings de otro lugar, probablemente un viejo es6-shim.

Verifique dos veces typings.d.tspara asegurarse de que no haya referencias es6. Elimine cualquier referencia a es6de su directorio de tipings si tiene uno.

Por ejemplo:

Esto entrará en conflicto con types:['core-js']typings.json.

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160602141332" 
    // es6-shim will also conflict
  }
}

La inclusión core-jsen la matriz de tipos tsconfig.jsondebería ser el único lugar desde el que se importa.

CLI angular 1.0.0-beta.30

Si está utilizando la CLI Angular, elimine la matriz lib typings.json. Esto parece entrar en conflicto con la declaración de core-js en tipos.

"compilerOptions" : {
  ...
  // removed "lib": ["es6", dom"],
  ...
},
"types" : ["core-js"]

Usuarios de Webstorm / Intellij que utilizan la CLI angular

Asegúrese de que el compilador de mecanografiado incorporado esté deshabilitado. Esto entrará en conflicto con la CLI. Para compilar su mecanografiado con la CLI, puede configurar una ng serveconfiguración.

ingrese la descripción de la imagen aquí

Tsconfig compilerOptions lib vs types

Si prefiere no instalar las definiciones de tipo core js, hay algunas bibliotecas es6 que vienen incluidas con typecript. Esos se utilizan a través de la lib: []propiedad en tsconfig.

Consulte aquí, por ejemplo: https://www.typescriptlang.org/docs/handbook/compiler-options.html

Nota: Si no se especifica --lib, se inyecta una biblioteca predeterminada. La biblioteca predeterminada inyectada es: ► Para --target ES5: DOM, ES5, ScriptHost ► Para --target ES6: DOM, ES6, DOM.Iterable, ScriptHost

tl; dr

Respuesta corta, ya sea "lib": [ "es6", "dom" ]o "types": ["core-js"]se puede utilizar para resolver can't find Promise,Map, Set and Iterator. Sin embargo, usar ambos provocará errores de identificador duplicados.

Kris Hollenbeck
fuente
1
Gracias por la actualización y la buena respuesta. Acepté tu respuesta porque la gente todavía viene aquí para que este error desaparezca hasta ahora. ¿Hay alguna posibilidad de que actualice su respuesta a RC 5? Me enfrento a este error y, siguiendo su respuesta, pude usar Promesa, pero ahora hay muchos errores del archivo node_modules \ @types \ es6-shim \ index.d.ts: "Identificador duplicado 'PropertyKey'". en líneas: 6,10,248,283,290 y así sucesivamente; .. también error en: C: \ Users \ armyTik \ Desktop \ rc5 \ store-app-02 \ node_modules \ typescript \ lib \ lib.es2015.core.d.ts: 17 : 13 Identificador duplicado 'PropertyKey'.
Stav Alfi
Actualicé mi respuesta. Esperemos que eso ayude a aclarar un poco las cosas. Esto debería ser lo mismo para RC5 y RC4, creo.
Kris Hollenbeck
También lo cambié para reflejar solo core-js, por lo que es menos confuso. core-js y es6 son ambos para declaraciones de tipo específico es6. Prefiero core-js ya que parece cubrir más que el es6-shim.
Kris Hollenbeck
Gracias por la actualización. No tuve suerte esta vez. Actualicé mis errores actuales.
Stav Alfi
2
Probablemente, lib es la mejor solución. github.com/angular/angular/blob/…
Alex
75

También tengo el mismo problema, "Promesa no encontrada", cuando el código quiere crear un objeto Promesa.

Intenté alguna solución encontrada en stackoverflow, incluida la que sacó System.config ({...}) para formar system.js y la incluyó en index.html.

Finalmente resolví el problema. El problema es que, en index.html, se incluye es6-shim.min.js. Sin embargo, en tsconfig.json, la propiedad "target" en "compilerOptions" tiene el valor de "es5". Después de cambiarlo a "es6", el error desapareció.

Daniel C. Deng
fuente
2
Este fue el problema para mí también. ¿Alguien sabe por qué esto causaría ese error?
Nick Brady
También se corrigieron los errores que recibí en IntelliJ IDEA / WebStorm
bentolor
55
Pero el código js tiene que ser transpuesto a es5 ya que no todos los navegadores están listos para es6. ¿Alguien tiene problemas de es6 en diferentes navegadores? Thankx!
bmnepali
funciona para mí en angular2.1.0. compilador 2.1.0 core 2.1.0 común2.1.0 rxjs5.0.0-beta.12 platform-browser2.1.0
farhad goodarzi
¡Gracias! Me
ahorraste
63

Angular 2 Final

- Soporte es5 (funciona perfectamente con TS 2.0.0 +)

Por actualización es6-shimno es compatible ahora, si tiene ambas tipificaciones instaladas juntas es6-shimy core-jsjuntas. Elimine la es6-shimescritura mencionando en tsconfig.json. Ahora puede consultar a continuación core-jsescribiendo para obtener es5ayuda dentromain.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"
]

- soporte es6

Solo necesita establecer la "target"propiedad en es6, entonces todos los errores desaparecerán. Y el código transpilado estará en es6formato.

Pankaj Parkar
fuente
Muchas gracias. No tuve oportunidad de encontrar eso por mi cuenta.
Stav Alfi
@StavAlfi np ... eso sucede ... Me alegro de ayudarte ... Gracias :)
Pankaj Parkar
Con beta.7 debería instalarse si utiliza la configuración del proyecto en el tutorial de inicio rápido. ¿Qué beta de Angular usas? Confirmo el cambio de última hora con angular 2.0.0 beta.7
Marc
1
Package.json en el tutorial de inicio rápido admite la versión real de angular 2. Si copia package.json. tscconfig.json y typings.json al directorio raíz de su proyecto y llame a npm -install project setup estará bien.
Marc
3
@PankajParkar 2.0.0-rc.1. Solo comencé a usar Angular hace un par de días, trabajé a través de los documentos de inicio [aquí] (). En el package.jsonque pusieron "angular2-in-memory-web-api": "0.0.7"y el resto de las cosas angular viene de "@angular/<module>": "2.0.0-rc.1"donde <module>es common, compiler, core, http, platform-browser, platform-browser-dynamic, router, router-deprecatedy upgrade.
Héctor
42

Actualizado a partir de angular-2.0.0-rc.4

TLDR;

  1. Transpile a es6

    • el error desaparece (con algunas trampas).
  2. Transpile a es5

    • instalar tipings
    • instale la cuña es6
    • asegúrese de que se compile con su código.
    • El error desaparece.

Para los lectores:

Opción 1: Transpile a es6 o es2015

tsconfig.json:

{
  "compilerOptions": {
    "target": "es6",
    "module": "system",
    "moduleResolution": "node",
     ...
  },
"exclude": [
    "node_modules",
    "jspm_packages"
  ]
}

Tenga en cuenta que uglifyjs no admite es6 en este momento . Esto podría afectarlo al hacer paquetes de producción.

Opción 2: Transpile a es5, instale tipings y luego instale es6-shim:

tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
     ...
  },
  "exclude": [
    "node_modules",
    "jspm_packages"
  ]
}

Instale tipings, luego instale es6-shim:

npm install typings --saveDev
typings install dt~es6-shim --global --save

Si sigue esta ruta, debe asegurarse de que el compilador mecanografiado pueda encontrar el archivo .d.ts.

Tienes dos opciones:

a. Asegúrese de que su tsconfig.json esté al mismo nivel que la carpeta de tipings.

si. Incluya una referencia en su archivo main.ts donde su aplicación angular2 esté arrancada.

Opción A: asegúrese de que su tsconfig.json esté al mismo nivel que la carpeta de tipings.

Nota: NO use el indicador de exclusión para excluir la carpeta de tipings.

project
|-- src
|-- node_modules
|-- package.json
|-- typings
|-- tsconfig.json

Opción B: referencia en el archivo principal antes de bootstrap (no haga esto):

Como se muestra en otras respuestas, Angular ya no incluye este archivo

main.ts:

/// <reference path="../../typings/globals/es6-shim/index.d.ts" />
Nick Acosta
fuente
2
La opción 1 funciona perfectamente bien para RC4. Asegúrese de eliminar core-js y otros tipos que ofrecen Promise, Map, etc. para evitar conflictos de espacio de nombres.
wtfzn
1
Gracias, trabajé. Necesita core-js o es6-shim (no ambos). Y luego incluya ./typings/index.d.ts en su proceso de compilación ts.
k3a
1
--saveDevNo funciona por ahora. --save-devhace.
George Sovetov
1
¿No typingsdebería instalarse globalmente?
George Sovetov
8

Esto es lo que funcionó para mí.

comprobar si existe un typings.jsonarchivo

Se ve algo como esto,

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160317120654",
    "jasmine": "registry:dt/jasmine#2.2.0+20160505161446",
    "node": "registry:dt/node#6.0.0+20160613154055"
  }
}

Instalar paquetes de tipings a nivel mundial.

sudo npm install -g typings

después de instalar tipings , ejecute

typings install

luego reinicie el servidor.

Todo es variado
fuente
6

Tuve un problema similar en el que no estaba reconociendo el método Promise.resolve () . Cambié el valor "objetivo" de ES5 a ES6 en tsconfig.json . Eso resolvió el problema.

Espero que esto ayude.

Nandakumar Purohit
fuente
Sí, esto me ayudó con seguridad: cambió el valor de "objetivo" de ES5 a ES6 en tsconfig.json.
Greg Trevellick
5

Como Angular 2 pasó a RC 0, /angular2/typings/browser.d.ts ya no forma parte de la distribución Angular 2. El archivo se puede instalar por separado.

Desde aquí: https://github.com/angular/angular/issues/8513 hay algunas opciones. El que funcionó para mí fue:

typings install es6-shim --ambient --save

// In your app.ts
/// <reference path="typings/browser.d.ts" />
James
fuente
1
Gracias por esto, pero el comando para typings 1.0+ es: typings install dt ~ es6-shim --save --global ( github.com/typings/typings/issues/517 ) y luego usa /// <reference path = " typings / es6-shim / es6-shim.d.ts "/>
Simon Trewhella
4

Me las arreglé para solucionar este problema sin tener que agregar ninguna referencia de triple barra al archivo de arranque TS, cambiar a ES6 (que trae un montón de problemas, tal como dijo @DatBoi ) actualizar VS2015 NodeJSy / o NPMcompilaciones integradas o instalar typingsglobalmente.

Esto es lo que hice en unos pocos pasos:

  • agregado typingsen el package.jsonarchivo del proyecto .
  • agregó un scriptbloque en el package.jsonarchivo para ejecutar / actualizar typingsdespués de cada acción de NPM.
  • agregó un typings.jsonarchivo en la carpeta raíz del proyecto que contiene una referencia a core-js, que es uno de los mejores paquetes de shim / polyfill que existen en este momento para solucionar problemas de ES5 / ES6.

Así es como package.jsondebería verse el archivo (solo líneas relevantes):

{
  "version": "1.0.0",
  "name": "YourProject",
  "private": true,
  "dependencies": {
    ...
    "typings": "^1.3.2",
    ...
  },
  "devDependencies": {
    ...
  },
  "scripts": {
      "postinstall": "typings install"
  }
}

Y aquí está el typings.jsonarchivo:

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160602141332",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160621231320"
  }
}

( Jasminey Nodeno son obligatorios, pero sugiero mantenerlos en caso de que lo necesite en el futuro).

Esta solución funciona bien con Angular2 RC1 a RC4, que es lo que necesitaba, pero creo que también solucionará problemas similares con otros paquetes de biblioteca habilitados para ES6.

AFAIK, creo que esta es la forma más limpia posible de solucionarlo sin alterar la configuración predeterminada de VS2015.

Para obtener más información y un análisis detallado del problema, también sugiero leer esta publicación en mi blog.

Darkseal
fuente
3

Si usa Angular2 RC1 con tipings v1.0 + use el comando:

typings install dt~core-js --save --global

para instalar la definición core-js y luego hacer referencia a su índice global en su main.ts:

/// <reference path="../../../typings/index.d.ts" />

Si usa es6-shim o alguna otra biblioteca de shim, instale tipings para eso

Consulte https://github.com/typings/typings/issues/517

Simon Trewhella
fuente
2

Noté que estos problemas aparecían después de actualizar de Angular 5 a Angular 6. Pude solucionar esto haciendo lo siguiente en VS2017:

  • Asegúrese de que se instaló el SDK de TypeScript (a través del instalador de Visual Studio) para mi versión particular de TypeScript, 2.9
  • Asegúrese de que la propiedad del proyecto Módulo del sistema esté configurada para que coincida con la de mi tsconfig.json: ES2015. Esto a menudo se sincroniza automáticamente si el archivo tsconfig está en la raíz del proyecto. Sin embargo, como estaba usando la plantilla VS Angular, coloca estos archivos en una subcarpeta "ClientApp", y no se configuró la propiedad del proyecto del Sistema de módulos.

Propiedades del proyecto VS2017

tsconfig.json:

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "lib": [
      "es2017",
      "dom"
    ],
    "module": "es2015",
    "baseUrl": "./"
  }
}
dasch88
fuente
1

Tuve el mismo problema al crear un objeto de promesa dentro de mi clase. Al cambiar el nombre de destino a "es5" de "es6" resolvió mi problema.

CharithW
fuente
1

Otra posible solución es reinstalar los tipos:
esto me funciona para"angular2": "2.0.0-beta.15"

  1. npm clean cache
  2. npm install
  3. npm install -g typings
  4. Eliminar typingsdirectorio del proyecto (Directorio donde están instalados los módulos de tipificación)
  5. typings install
  6. npm run
Vicky Gonsalves
fuente
1

Otra buena solución. Necesita crear un archivo typings.json en el directorio raíz del proyecto con contenido:

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160725163759",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160909174046"
  }
}

Luego instale el paquete de tipificación global o local, si no está instalado (lo instalo globalmente):

sudo npm install --global typings

En el comando de ejecución del directorio raíz del proyecto:

typings install

Después de que el problema se resuelva. No es necesario cambiar el objetivo de tsconfig a es6 o es7. Su aplicación web no es compatible después de eso alguna versión antigua de los navegadores.

Alexey Nikitenko
fuente
0

Encontré que la referencia en boot.ts no era la ruta correcta. Actualizando esa ruta para /// <reference path=">../../../node_modules/angular2/typings/browser.d.ts" />resolver los errores de Promise.

impresionante
fuente
0

Estoy entrenando con un tutorial angular2 (héroe).
Después de instalar @ types / core-js comentado en estas respuestas, recibí el error "Identificador duplicado".
En mi caso, se resolvió eliminando la línea lib en tsconfig.json.

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

coffeenjava
fuente
-1

mi estructura de archivos es la siguiente:

project
 |--node-modules
 |   |--angular2
 |   |   |--typings
 |   |   |   |--browser.d.ts
 |--src
 |--app.ts

pegue el siguiente en la parte superior de su app.ts y su problema resuelto

/// <reference path=">../../../node_modules/angular2/typings/browser.d.ts" />
Matey Aryeh
fuente
Cambiar la entrada TARGET para que apunte a ES6 en tsconfig.json solucionó este problema para mí, como se señala en algunas de las respuestas anteriores.
TheCopyPaster
-1

Recibí el mismo problema y pude encontrarlo en github https://github.com/angular/angular-cli/issues/1901 , que indica que era un problema [email protected].

Mecanografiar downgrade a 2.0.0nivel global y local me ayudó a resolverlo.

Globalmente:

npm uninstall typescript -g
npm cache clean
npm install typescript@2.0.0 -g

Localmente: VAYA a la carpeta del proyecto que creó con ng new

npm uninstall typescript
npm cache clean
npm install typescript@2.0.0

También cambié la versión del mecanografiado dentro de package.json de ^2.0.0a 2.0.0, pero no funcionó hasta que degradé la instalación del mecanografiado local.

coche acuático
fuente
¿Por qué la gente rechaza esto? Me gustaría saber por qué es una mala idea. Si mecanografiado es un lenguaje transpilado y se convierte a javascript, es tan seguro como su navegador, por lo que no hay ningún riesgo, ¿verdad?
user3505901