tablas formularios example dinamicas javascript angular typescript

javascript - formularios - tablas dinamicas angular 4



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

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 compila 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 es compatible con 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.

segundo. 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 del 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" />

Después de instalar Angular, el compilador mecanografiado sigue recibiendo algunos errores sobre no encontrar Promise , Map , Set e Iterator .

Hasta ahora los ignoré pero ahora necesito Promise para 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''.


Angular 2 Final

- Soporte es5 (funciona perfectamente con TS 2.0.0 +)

Por actualización, es6-shim no es compatible ahora, si tiene ambas tipificaciones instaladas juntas es6-shim y core-js juntas. Elimine la es6-shim mencionando en tsconfig.json. Ahora puede consultar a continuación escribir core-js para es5 soporte de main.ts dentro de 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" ]

- soporte es6

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


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 el mecanografiado 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 desde otro lugar, muy probablemente un viejo es6-shim.

Verifique los typings.d.ts asegúrese de que no haya referencias a es6 . Elimine cualquier referencia a es6 de su directorio de tipings si tiene uno.

Por ejemplo:

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

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

Incluir core-js en la matriz de tipos en tsconfig.json debería ser el único lugar desde el que se importa.

CLI angular 1.0.0-beta.30

Si está utilizando Angular-CLI, elimine la matriz lib en typings.json . Esto parece entrar en conflicto con declarar 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 configuración ng serve .

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 usan a través de la propiedad lib: [] 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

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



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" />


Encontré que la referencia en boot.ts no era la ruta correcta. La actualización de esa ruta a /// <reference path=">../../../node_modules/angular2/typings/browser.d.ts" /> resolvió los errores de Promise.


Esto es lo que funcionó para mí.

compruebe si existe un archivo typings.json ,

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.


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"]


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 share ) actualizar NodeJS de NodeJS y / o compilaciones de NPM o instalar typings globalmente

Esto es lo que hice en unos pocos pasos:

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

Así es como debería verse el archivo package.json (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 archivo typings.json :

{ "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" } }

( Jasmine y Node no son necesarios, 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.


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, dado que 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.

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": "./" } }


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

La degradación del mecanografiado a 2.0.0 tanto a nivel global como local me ayudó a resolverlo.

Globalmente:

npm uninstall typescript -g npm cache clean npm install [email protected] -g

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

npm uninstall typescript npm cache clean npm install [email protected]

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


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 admite después de eso alguna versión antigua de los navegadores.


Otra posible solución es reinstalar los tipos:
Esto funciona para mí para "angular2": "2.0.0-beta.15"

  1. npm clean cache
  2. npm install
  3. npm install -g typings
  4. Eliminar el directorio typings del proyecto (Directorio donde están instalados los módulos Typings)
  5. typings install
  6. npm run

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 github.com/typings/typings/issues/517



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

Intenté alguna solución encontrada en , incluida la que saca System.config ({...}) para formar system.js y la incluye 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ó.


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.


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

Espero que esto ayude.


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 se resolvió

/// <reference path=">../../../node_modules/angular2/typings/browser.d.ts" />