Angolare: impossibile trovare Promessa, Mappa, Set e Iteratore


176

Dopo l'installazione angolare, il compilatore mastio tipografico ottenendo alcuni errori di non trovare Promise, Map, Sete Iterator.

Fino ad ora li ho ignorati ma ora ho bisogno che il Promisemio codice funzioni.

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

Gli errori:

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

1
Installa l'ultima versione di TypeScript per Visual Studio 2015 .
mylesk,

Risposte:


177

Angolare 5 con dattiloscritto ^ 2.0.0

Questo dovrebbe funzionare allo stesso modo con le versioni precedenti di Angular 2+.

Per farlo funzionare con typescript 2.0.0, ho fatto quanto segue.

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

Maggiori informazioni su @types con typescript 2.0.0.

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

Esempio di installazione:

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

Errori identificativi duplicati

Ciò è molto probabilmente dovuto al fatto che già da qualche altra parte vengono già importati duplicati di ecmascript 6 da un altro shim es6.

Ricontrolla typings.d.tsassicurati che non ci siano riferimenti a es6. Rimuovi qualsiasi riferimento a es6dalla tua directory di digitazioni se ne hai uno.

Per esempio:

Questo sarà in conflitto con types:['core-js']in typings.json.

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

Includere core-jsnella matrice dei tipi in tsconfig.jsondovrebbe essere l'unico posto da cui viene importato.

CLI angolare 1.0.0-beta.30

Se si utilizza la CLI angolare, rimuovere l'array lib in typings.json. Questo sembra essere in conflitto con la dichiarazione di core-js in tipi.

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

Utenti Webstorm / Intellij che utilizzano la CLI angolare

Assicurati che il compilatore dattiloscritto incorporato sia disabilitato. Ciò andrà in conflitto con la CLI. Per compilare il tuo dattiloscritto con l'interfaccia della riga di comando puoi impostare una ng serveconfigurazione.

inserisci qui la descrizione dell'immagine

Compilatore tsconfig Opzioni lib vs tipi

Se si preferisce non installare le definizioni di tipo js core, ci sono alcune librerie es6 fornite con typescript. Questi vengono utilizzati tramite la lib: []proprietà in tsconfig.

Vedi qui per esempio: https://www.typescriptlang.org/docs/handbook/compiler-options.html

Nota: se --lib non viene specificato, viene iniettata una libreria predefinita. La libreria predefinita iniettata è: ► Per --target ES5: DOM, ES5, ScriptHost ► Per --target ES6: DOM, ES6, DOM.Iterable, ScriptHost

tl; dr

Risposta breve o "lib": [ "es6", "dom" ]o "types": ["core-js"]può essere utilizzata per risolvere can't find Promise,Map, Set and Iterator. L'uso di entrambi, tuttavia, causa errori di identificatore duplicati.


1
Grazie per l'aggiornamento e la buona risposta. Ho accettato la tua risposta perché le persone che vengono ancora qui per far sparire questo errore fino ad ora. C'è qualche possibilità di aggiornare la tua risposta a RC 5? Sto affrontando questo errore e seguendo la tua risposta, sono stato in grado di usare la promessa, ma ora ci sono molti errori dal file node_modules \ @types \ es6-shim \ index.d.ts: "Identificatore duplicato 'PropertyKey'." in righe: 6,10,248,283,290 e così via; .. anche errore in: C: \ Users \ armyTik \ Desktop \ rc5 \ store-app-02 \ node_modules \ typescript \ lib \ lib.es2015.core.d.ts: 17 : 13 Identificatore duplicato 'PropertyKey'.
Stav Alfi,

Ho aggiornato la mia risposta. Spero che questo aiuti a chiarire un po 'le cose. Questo dovrebbe essere lo stesso sia per RC5 che per RC4, credo.
Kris Hollenbeck,

L'ho anche cambiato per riflettere solo i core-js, quindi si spera meno confuso. core-js ed es6 sono entrambi per dichiarazioni di tipo specifico es6. Preferisco core-js in quanto sembra coprire più dello shim es6.
Kris Hollenbeck,

Grazie per l'aggiornamento. Questa volta non ho avuto fortuna. Ho aggiornato i miei errori attuali.
Stav Alfi,

2
Probabilmente, la lib è la soluzione migliore. github.com/angular/angular/blob/…
Alex

75

Ho anche lo stesso problema - "Promessa non trovata" - quando il codice vuole creare un oggetto Promessa.

Ho provato una soluzione trovata su stackoverflow, inclusa quella per estrarre System.config ({...}) per formare system.js e includerlo in index.html.

Alla fine ho risolto il problema. Il problema è che, in index.html, è incluso es6-shim.min.js. Tuttavia, in tsconfig.json, la proprietà "target" in "compilerOptions" ha il valore di "es5". Dopo averlo modificato in "es6", l'errore scompare.


2
Questo è stato il problema anche per me. Qualcuno sa perché questo causerebbe quell'errore?
Nick Brady,

Risolti anche gli errori che ho ricevuto in IntelliJ IDEA / WebStorm
bentolor il

5
Ma il codice js deve essere convertito in es5 poiché non tutti i browser sono pronti per es6. Qualcuno ha avuto problemi es6 in diversi browser. Thankx!
bmnepali,

funziona per me su angular2.1.0. compilatore 2.1.0 core 2.1.0 common2.1.0 rxjs5.0.0-beta.12 platform-browser2.1.0
farhad goodarzi

Grazie! Mi hai risparmiato un sacco di tempo
Cristian Traìna, il

63

Angolare 2 finale

- supporto es5 (funziona perfettamente con TS 2.0.0 +)

Per ogni aggiornamento es6-shimnon è supportato ora, se entrambe le digitazioni sono installate insieme es6-shime core-jsinsieme. Rimuovere la es6-shimdigitazione menzionando in tsconfig.json. Ora puoi fare riferimento sotto core-jsdigitando per es5supporto all'internomain.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"
]

- supporto es6

Devi solo impostare la "target"proprietà su es6, quindi tutto andrà via. E il codice traspilato sarà in es6formato.


Grazie mille. Non ho avuto occasione di trovarlo da solo.
Stav Alfi,

@StavAlfi np .. che succede .. Lieto di aiutarti .. Grazie :)
Pankaj Parkar,

Con beta.7 dovrebbe essere installato se si utilizza l'installazione del progetto nel tutorial di avvio rapido. Quale beta di Angular usi? Confermo il cambio di rotta con 2.0.0 beta.7 angolare
Marc,

1
Package.json nel tutorial di avvio rapido supporta la versione effettiva di angular 2. Se si copia package.json. tscconfig.json e typings.json nella directory principale del progetto e chiama npm -install, l'installazione del progetto andrà bene.
Marc,

3
@PankajParkar 2.0.0-rc.1. Ho iniziato a usare Angular solo un paio di giorni fa, anche se ho lavorato sui documenti introduttivi [qui] (). Nel package.jsonmettono "angular2-in-memory-web-api": "0.0.7"ed il resto della roba angolare viene da "@angular/<module>": "2.0.0-rc.1"dove <module>è common, compiler, core, http, platform-browser, platform-browser-dynamic, router, router-deprecatede upgrade.
Ettore,

42

Aggiornato da angular-2.0.0-rc.4

TLDR;

  1. Transpile in es6

    • l'errore scompare (con alcuni gotchas).
  2. Transpile in es5

    • installa digitazioni
    • installare lo spessore es6
    • assicurati che sia compilato con il tuo codice.
    • l'errore scompare.

Per i lettori:

Opzione 1: Transpile in es6 o es2015

tsconfig.json:

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

Tieni presente che uglifyjs al momento non supporta es6 . Ciò potrebbe influire sulla creazione di pacchetti di produzione.

Opzione 2: Transpile in es5, installa digitazioni, quindi installa es6-shim:

tsconfig.json:

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

Installa le digitazioni, quindi installa es6-shim:

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

Se segui questa strada, devi assicurarti che il compilatore dattiloscritto possa trovare il file .d.ts.

Hai due opzioni:

un. Assicurati che tsconfig.json sia allo stesso livello della cartella delle tipizzazioni.

b. Includi un riferimento nel tuo file main.ts in cui l'applicazione angular2 viene avviata.

Opzione A: assicurati che tsconfig.json sia allo stesso livello della cartella delle tipizzazioni.

Nota: NON utilizzare il flag exclude per escludere la cartella delle tipizzazioni.

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

Opzione B: riferimento nel file principale prima del bootstrap (non farlo):

Come mostrato in altre risposte, questo file non è più incluso da Angular

main.ts:

/// <reference path="../../typings/globals/es6-shim/index.d.ts" />

2
L'opzione 1 funziona perfettamente per RC4. Assicurati di rimuovere core-js e altre digitazioni che forniscono Promessa, Mappa, ecc. Per evitare conflitti nello spazio dei nomi.
wtfzn,

1
Grazie, 1 ha funzionato. Necessario core-js o es6-shim (non entrambi). E quindi includere ./typings/index.d.ts nel processo di compilazione ts.
k3a

1
--saveDevper ora non funziona. --save-devlo fa.
George Sovetov,

1
Non dovrebbe typingsessere installato a livello globale?
George Sovetov,


8

Questo è ciò che ha funzionato per me.

controlla se esiste un typings.jsonfile,

Sembra qualcosa del genere,

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

Installa il pacchetto di digitazioni a livello globale.

sudo npm install -g typings

dopo aver installato le digitazioni , esegui

typings install

quindi riavviare il server.


6

Ho avuto un problema simile in cui non riconosceva il metodo Promise.resolve () . Ho cambiato il valore "target" da ES5 a ES6 in tsconfig.json . Ciò ha risolto il problema.

Spero che questo ti aiuti.


Sì, questo mi ha sicuramente aiutato - ha cambiato il valore "target" da ES5 a ES6 in tsconfig.json.
Greg Trevellick,

5

Da quando Angular 2 è passato a RC 0, /angular2/typings/browser.d.ts non fa più parte della distribuzione di Angular 2. Il file può essere installato separatamente.

Da qui: https://github.com/angular/angular/issues/8513 ci sono alcune opzioni. Quello che ha funzionato per me è stato:

typings install es6-shim --ambient --save

// In your app.ts
/// <reference path="typings/browser.d.ts" />

1
Grazie per questo, ma il comando per le digitazioni 1.0+ è: typings install dt ~ es6-shim --save --global ( github.com/typings/typings/issues/517 ) e quindi usa /// <reference path = " typings / es6-shim / es6-shim.d.ts "/>
Simon Trewhella

4

Sono riuscito a risolvere questo problema senza dover aggiungere alcun riferimento a tre barre al file bootstrap TS, passare a ES6 (che porta un sacco di problemi, proprio come ha detto @DatBoi ) aggiornare VS2015 NodeJSe / o NPMbuild in bundle o installare a typingslivello globale.

Ecco cosa ho fatto in pochi passaggi:

  • aggiunto typingsnel package.jsonfile del progetto .
  • aggiunto un scriptblocco nel package.jsonfile per eseguire / aggiornare typingsdopo ogni azione NPM.
  • aggiunto un typings.jsonfile nella cartella principale del progetto contenente un riferimento a core-js, che al momento è uno dei migliori pacchetti shim / polyfill per risolvere i problemi di ES5 / ES6.

Ecco come package.jsondovrebbe apparire il file (solo righe pertinenti):

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

Ed ecco il typings.jsonfile:

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

( Jasminee Nodenon sono richiesti, ma suggerisco di conservarli nel caso in cui sia necessario in futuro).

Questa correzione funziona bene con Angular2 da RC1 a RC4, che è ciò di cui avevo bisogno, ma penso che risolverà problemi simili anche con altri pacchetti di librerie abilitati a ES6.

AFAIK, penso che questo sia il modo più pulito possibile di risolverlo senza incasinare le impostazioni predefinite di VS2015.

Per maggiori informazioni e un'analisi dettagliata del problema, suggerisco anche di leggere questo post sul mio blog.


3

Se si utilizza Angular2 RC1 con le digitazioni v1.0 + utilizzare il comando:

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

per installare la definizione core-js e quindi fare riferimento all'indice globale in main.ts:

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

Se si utilizza es6-shim o qualche altra libreria shim, installare invece le digitazioni per quello

Fare riferimento a https://github.com/typings/typings/issues/517


2

Ho notato questi problemi che si manifestano dopo l'aggiornamento da Angular 5 a Angular 6. Sono stato in grado di risolvere questo problema nel VS2017:

  • Assicurarsi che l'SDK TypeScript sia stato installato (tramite il programma di installazione di Visual Studio) per la mia versione specifica di TypeScript, 2.9
  • Assicurarsi che la proprietà del progetto Sistema di sistema sia impostata in modo che corrisponda a quella in my tsconfig.json: ES2015. Questo è spesso automaticamente sincronizzato se il file tsconfig si trova nella radice del progetto. Tuttavia, poiché stavo usando il modello VS Angular, inseriva questi file in una sottocartella "ClientApp" e la proprietà del progetto Sistema di sistema non era impostata.

Proprietà del progetto 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": "./"
  }
}

1

Ho avuto lo stesso problema durante la creazione di un oggetto promessa all'interno della mia classe. Modificando il nome di destinazione in "es5" da "es6" ho risolto il mio problema.


1

Un'altra possibile soluzione è reinstallare le digitazioni:
per me funziona"angular2": "2.0.0-beta.15"

  1. npm clean cache
  2. npm install
  3. npm install -g typings
  4. Elimina typingsdirectory dal progetto (sono installati i moduli di tipizzazione Directory in cui sono installati)
  5. typings install
  6. npm run

1

Un'altra buona soluzione. È necessario creare un file typings.json nella directory principale del progetto con contenuto:

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

Quindi installa il pacchetto di tipizzazioni globali o locali, se non è installato (lo sto installando a livello globale):

sudo npm install --global typings

Nel comando di esecuzione della directory root del progetto:

typings install

Dopo che il problema è stato risolto. Non necessario per modificare la destinazione tsconfig in es6 o es7. L'applicazione Web non supporta successivamente alcune versioni precedenti di browser.



0

Ho trovato il riferimento in boot.ts non era il percorso corretto. L'aggiornamento di quel percorso per /// <reference path=">../../../node_modules/angular2/typings/browser.d.ts" />risolvere gli errori Promessa.


0

Mi sto allenando con un tutorial di angular2 (eroe).
Dopo aver installato @ types / core-js commentato nelle risposte a queste tesi, ho ricevuto un errore "Identificatore duplicato".
Nel mio caso, è stato risolto rimuovendo la linea lib in tsconfig.json.

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


-1

la mia struttura dei file è la seguente:

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

incolla il seguito nella parte superiore di app.ts e il problema è stato risolto

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

La modifica della voce TARGET in modo da indicare ES6 in tsconfig.json ha risolto questo problema per me, come indicato in alcune delle risposte sopra.
TheCopyPaster l'

-1

Ho avuto lo stesso problema e sono riuscito a trovarlo in github https://github.com/angular/angular-cli/issues/1901 , che afferma che si trattava di un problema typescript@2.0.2.

Il downgrade del dattiloscritto a 2.0.0livello globale e locale mi ha aiutato a risolverlo.

A livello globale:

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

A livello locale: VAI nella cartella del progetto creata da ng new

npm uninstall typescript
npm cache clean
npm install typescript@2.0.0

Ho anche cambiato la versione di typescript all'interno di package.json da ^2.0.0a 2.0.0, ma non ha funzionato fino a quando non ho eseguito il downgrade dell'installazione locale di typescript.


Perché le persone stanno effettuando il downvoting di questo, vorrei sapere perché questa è una cattiva idea. Se il dattiloscritto è una lingua traspilata e viene convertito in javascript, è sicuro solo come il tuo browser, quindi non è come se ci fosse alcun rischio, giusto?
user3505901
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.