Estoy usando Angular (versión 2) con TypeScript (versión 1.6) y cuando compilo el código obtengo estos errores:
Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/change_detection/parser/locals.d.ts(4,42): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/facade/collection.d.ts(1,25): Error TS2304: Cannot find name 'MapConstructor'.
node_modules/angular2/src/core/facade/collection.d.ts(2,25): Error TS2304: Cannot find name 'SetConstructor'.
node_modules/angular2/src/core/facade/collection.d.ts(4,27): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/facade/collection.d.ts(4,39): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/facade/collection.d.ts(7,9): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/facade/collection.d.ts(8,30): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/facade/collection.d.ts(11,43): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/facade/collection.d.ts(12,27): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/facade/collection.d.ts(14,23): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/facade/collection.d.ts(15,25): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/facade/collection.d.ts(94,41): Error TS2304: Cannot find name 'Set'.
node_modules/angular2/src/core/facade/collection.d.ts(95,22): Error TS2304: Cannot find name 'Set'.
node_modules/angular2/src/core/facade/collection.d.ts(96,25): Error TS2304: Cannot find name 'Set'.
node_modules/angular2/src/core/facade/lang.d.ts(1,22): Error TS2304: Cannot find name 'BrowserNodeGlobal'.
node_modules/angular2/src/core/facade/lang.d.ts(33,59): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/facade/promise.d.ts(1,10): Error TS2304: Cannot find name 'Promise'.
node_modules/angular2/src/core/facade/promise.d.ts(3,14): Error TS2304: Cannot find name 'Promise'.
node_modules/angular2/src/core/facade/promise.d.ts(8,32): Error TS2304: Cannot find name 'Promise'.
node_modules/angular2/src/core/facade/promise.d.ts(9,38): Error TS2304: Cannot find name 'Promise'.
node_modules/angular2/src/core/facade/promise.d.ts(10,35): Error TS2304: Cannot find name 'Promise'.
node_modules/angular2/src/core/facade/promise.d.ts(10,93): Error TS2304: Cannot find name 'Promise'.
node_modules/angular2/src/core/facade/promise.d.ts(11,34): Error TS2304: Cannot find name 'Promise'.
node_modules/angular2/src/core/facade/promise.d.ts(12,32): Error TS2304: Cannot find name 'Promise'.
node_modules/angular2/src/core/facade/promise.d.ts(12,149): Error TS2304: Cannot find name 'Promise'.
node_modules/angular2/src/core/facade/promise.d.ts(13,43): Error TS2304: Cannot find name 'Promise'.
node_modules/angular2/src/core/linker/element_injector.d.ts(72,32): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/element_injector.d.ts(74,17): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/element_injector.d.ts(78,184): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/element_injector.d.ts(83,182): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/element_injector.d.ts(107,37): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/proto_view_factory.d.ts(27,146): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/view.d.ts(52,144): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/view.d.ts(76,79): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/view.d.ts(77,73): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/view.d.ts(94,31): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/view.d.ts(97,18): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/view.d.ts(100,24): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/view.d.ts(103,142): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/linker/view.d.ts(104,160): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/render/api.d.ts(281,74): Error TS2304: Cannot find name 'Map'.
node_modules/angular2/src/core/zone/ng_zone.d.ts(1,37): Error TS2304: Cannot find name 'Zone'.
Este es el código:
import 'reflect-metadata';
import {bootstrap, Component, CORE_DIRECTIVES, FORM_DIRECTIVES} from 'angular2/core';
@Component({
selector: 'my-app',
template: '<input type="text" [(ng-model)]="title" /><h1>{{title}}</h1>',
directives: [ CORE_DIRECTIVES ]
})
class AppComponent {
title :string;
constructor() {
this.title = 'hello angular 2';
}
}
bootstrap(AppComponent);
angular
typescript
usuario233232
fuente
fuente
import {ROUTER_PROVIDERS} from 'angular2/router';
. Tengo el mismo problema y, por alguna razón, esto me lo soluciona ...Respuestas:
Un problema conocido: https://github.com/angular/angular/issues/4902
Motivo principal: el
.d.ts
archivo incluido implícitamente por TypeScript varía con el objetivo de compilación, por lo que es necesario tener más declaraciones ambientales cuando se dirige,es5
incluso si las cosas están realmente presentes en los tiempos de ejecución (por ejemplo, Chrome). Más enlib.d.ts
fuente
Hay una solución alternativa mencionada en el registro de cambios para 2.0.0-beta.6 (2016-02-11) (enlistado en cambios de última hora):
asegúrese de tener la ruta de referencia correcta, necesitaba agregar ../ al comienzo para que esto funcione.
fuente
TS2304: Cannot find name 'module'
yTS2339: Property 'find' does not exist on type 'MyThing[]'.
... ¿Alguna idea?Las características de ES6, como las promesas, no se definen al apuntar a ES5. Hay otras bibliotecas, pero core-js es la biblioteca de JavaScript que utiliza el equipo de Angular. Contiene polyfills para ES6.
Angular 2 ha cambiado mucho desde que se hizo esta pregunta. Las declaraciones de tipo son mucho más fáciles de usar en Typecript 2.0.
Para las funciones de ES6 en Angular 2, no necesita Typings. Simplemente use typecript 2.0 o superior e instale @ types / core-js con npm:
Luego, agregue los atributos TypeRoots y Tipos a su tsconfig.json:
Esto es mucho más fácil que usar Typings, como se explica en otras respuestas. Consulte la publicación del blog de Microsoft para obtener más información: Texto mecanografiado: El futuro de los archivos de declaración
fuente
typeRoots
si la única entrada que tiene esnode_modules/@types
.TypeRoots
yTypes
para tsconfig.json. En mi caso, también tuve que actualizar mi plugin Gulp gulp-typescript 2.x que se estaba transpilando usando una versión incrustada de TypeScript 1, pero una vez que lo actualicé estaba usando TypeScript 2 y agregué el polyfill @ types / core-js. conjunto. Muchas gracias.Para aquellos que siguen el tutorial de Angular2
angular.io
para ser explícitos, aquí hay una expansión de la respuesta de mvdluit de exactamente dónde colocar el código:Su
main.ts
debe tener este aspecto:Tenga en cuenta que lo deja en las
///
barras diagonales, no las elimine.ref: https://github.com/ericmdantas/angular2-typescript-todo/blob/master/index.ts#L1
fuente
_references.js
no funcionará. Tiene que estar dentro del componente como sugiere esta respuesta. Además, use en../../
lugar de../
para la ruta.browser.d.ts
en la carpeta de tipings. Solo.js
archivos debajodist
. Hay un archivo llamado,typings.d.ts
así que pensé que era el nuevo, pero no resolvió el problema. Construir para 'es6' funciona, pero IE se queja. ¡Tan atrapado con la construcción 'es5' y sin tipings! : /npm install -g typings typings install
.d.ts
paquete de tipings. También para cumplir con el requisito de IE9 +, tuve que construir para es3.Pude arreglar esto con el siguiente comando
Tenga en cuenta que debe
typings
hacer que el comando anterior funcione, si no lo tiene, ejecute el siguiente comando para instalarloACTUALIZAR
la actualización de tipings no se lee
--ambient
,--global
también se hizo para algunas personas que necesita instalar las definiciones de las bibliotecas anteriores, solo use el siguiente comandoGracias a @bgerth por señalar esto.
fuente
typings install dt~es6-promise dt~es6-collections --global --save
typings
actualización, agregaré su solución a la respuestaAl tener Typecript> = 2, la opción "lib" en tsconfig.json hará el trabajo. No hay necesidad de Typings. https://www.typescriptlang.org/docs/handbook/compiler-options.html
fuente
Para
Angular 2.0.0-rc.0
agregarnode_modules/angular2/typings/browser.d.ts
no funcionará. Primero agregue el archivo typings.json a su solución, con este contenido:Y luego actualice el
package.json
archivo para incluir estopostinstall
:Ahora corre
npm install
También ahora debe ignorar la
typings
carpeta en sutsconfig.json
archivo también:Actualizar
Ahora AngularJS 2.0 está utilizando en
core-js
lugar dees6-shim
. Siga su archivo de inicio rápido typings.json para obtener más información.fuente
rc0
github.com/angular/angular/issues/4902#issuecomment-216495769puede agregar el código al comienzo de los archivos .ts.
fuente
Estaba obteniendo esto en Angular 2 rc1. Resulta que algunos nombres cambiaron con Typings v1 vs el antiguo 0.x. Los
browser.d.ts
archivos se convirtieronindex.d.ts
.Después de ejecutar,
typings install
busque su archivo de inicio (donde inicia) y agregue:/// <reference path="../typings/index.d.ts" />
(o sin el../
si su archivo de inicio está en la misma carpeta que la carpeta de tipings)Agregar
index.d.ts
a la lista de archivostsconfig.json
no funcionó por alguna razón.Además, el
es6-shim
paquete no era necesario.fuente
Pude arreglar esto instalando el
typings
módulo.(Usando ng 2.0.0-rc.1)
fuente
Tuve el mismo problema y lo resolví usando la
lib
opción entsconfig.json
. Como dijo basarat en su respuesta ,.d.ts
TypeScript incluye implícitamente un archivo dependiendo de latarget
opción de compilación , pero este comportamiento se puede cambiar con lalib
opción.Puede especificar que se incluyan archivos de definición adicionales sin cambiar la versión JS de destino. Para ejemplos, esto es parte de mi actual
compilerOptions
para [email protected] y agrega soporte paraes2015
características sin instalar nada más:Para obtener la lista completa de opciones disponibles, consulte el documento oficial .
Tenga en cuenta también que agregué
"types": ["node"]
e instalénpm install @types/node
para admitirrequire('some-module')
mi código.fuente
y agregue la ruta correcta a index.d.ts
Probado en @ angular-2.0.0-rc3
fuente
Si
npm install -g typings typings install
todavía no ayuda, elimine las carpetas node_modules y typings antes de ejecutar este comando.fuente
Esto es lo que piensan cómo todos están tratando de hacer algo diferente. Creo que estos sistemas aún están lejos de la versión final.
En mi caso, actualicé de rc.0 a rc.5 apareció este error.
Mi solución fue cambiar el tsconfig.json.
fuente
"lib"
, no"target"
.agregue typing.d.ts en la carpeta principal de la aplicación y allí declare la variable que desea usar cada vez
después de declarar esto en typing.d.ts, el error para require no vendrá en la aplicación.
fuente
Soy nuevo en Angular pero para mí la solución se encontró simplemente importando Input. No puedo tomar crédito por este, lo encontré en otro tablero. Esta es una solución simple si tiene el mismo problema, pero si sus problemas son más complejos, leería las cosas anteriores.
Mukesh :
fuente
Encontré este documento muy útil en el sitio web de Angular 2. Finalmente me permitió hacer que las cosas funcionaran correctamente, mientras que las otras respuestas aquí, para instalar tipings, me fallaron con varios errores. (Pero ayudó a guiarme en la dirección correcta).
En lugar de incluir es6-promise y es6-collections, incluye core-js, que fue el truco para mí ... no hay conflictos con las definiciones de ts ts de Angular2. Además, el documento explica cómo configurar todo esto para que ocurra automáticamente al instalar NPM, y cómo modificar su archivo typings.json.
fuente
Angular 2 RC1 renombró el
node_modules/angular2
directorio anode_modules/angular
.Si está utilizando un archivo Gulpfile para copiar archivos a un directorio de salida, probablemente todavía tenga
node_modules/angular
allí, que el compilador puede estar .Entonces (con cuidado) elimine lo que tiene
node_modules
para las versiones beta, y también elimine cualquier tipificación anterior y vuelva a ejecutartypings install
.fuente
Buena llamada, @VahidN, descubrí que necesitaba
En mi
tsconfig
también, para detener los errores dees6-shim
sí mismofuente
Importe la siguiente declaración en su archivo JS.
fuente
import './rxjs-extensions';
a miapp.component.ts
con el archivo rxjs-extensiones del tutorial angular2 (incluida su línea sugerida) y parece haber eliminado esos errores.La respuesta aceptada no proporciona una solución viable, y la mayoría de las otras sugieren la solución de "tres cortes" que ya no es viable, ya que
browser.d.ts
ha sido eliminada por los últimos RC de Angular2 y, por lo tanto, ya no está disponible.Sugiero encarecidamente instalar el
typings
módulo como lo sugieren algunas soluciones aquí, pero no es necesario hacerlo de forma manual o global: hay una forma efectiva de hacerlo solo para su proyecto y dentro de la interfaz VS2015. Esto es lo que debes hacer:typings
en el archivo package.json del proyecto.script
bloque en elpackage.json
archivo para ejecutar / actualizartypings
después de cada acción de NPM.typings.json
archivo en la carpeta raíz del proyecto que contenga una referencia acore-js
(en general mejor quees6-shim
atm).Eso es.
También puede echar un vistazo a este otro hilo SO y / o leer esta publicación en mi blog para obtener detalles adicionales.
fuente
Recibí este error después de fusionar mi rama de desarrollo con mi rama actual. Pasé algún tiempo para solucionar el problema. Como puede ver en la imagen a continuación, no hay ningún problema en los códigos.
Entonces, la única solución que funcionó para mí es que reiniciar el VSCode
fuente
Ahora debe importarlos manualmente.
fuente
Actualización
tsconfig.json
, cambioa
fuente