2016-09-23 6 views
1

Ich befolge die Schnellstartanleitung für Angular2 (https://angular.io/docs/ts/latest/quickstart.html), um eine Webanwendung mit Typescript und .NET Core zu erstellen. Abhängigkeiten und Typisierungen werden aufgelöst und korrekt erzeugt, aber wenn ich zu bauen versuchen, erhalte ich die Fehler:Angular2 Typescript .NET Kern VS2015. Ich kann den Namen "Promise", "Set", "Map" nicht finden

TS2304 Körperbau: Kann nicht finden Name ‚Versprechen‘

: Kann nicht Namen ‚Set‘

TS2304 Körperbau finden

TS2304 Build: Kann den Namen 'Map' nicht finden

Wie ich in vielen anderen Fragen gelesen habe, konnte ich lösen, indem ich den Typescript-Compiler auf ES6 ("target": "es6" in tsconfig.json) target, aber das ist nicht Eine Option, wie viele Browser ES6 noch nicht unterstützt. Also habe ich versucht, die Typisierungen für „es6-Versprechen“ und „es6-Sammlungen“ in meiner typings.json Datei hinzufügen:

{ 
    "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", 
    "es6-promise": "registry:dt/es6-promise", 
    "es6-collections": "registry:dt/es6-collections" 
    } 
} 

Aber es immer noch nicht kompilieren. Was kann ich tun, um in ES5 zu kompilieren?

Antwort

1

Die Lösung bestand darin, die Verweise auf die ES6 Typisierungen in meinem main.ts Datei hinzufügen:

/// <reference path="../typings/globals/es6-promise/index.d.ts" /> 
/// <reference path="../typings/globals/es6-collections/index.d.ts" /> 
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { AppModule } from './app.module'; 
const platform = platformBrowserDynamic(); 
platform.bootstrapModule(AppModule); 

Ich weiß nicht, ob es eine bessere Lösung ist, aber auf diese Weise kann ich bauen erfolgreich in ES5.

+0

Im Ordner 'typings' sollte auch eine Datei' index.d.ts' vorhanden sein, die automatisch alle Typdefinitionen enthält, die Sie installiert haben. Sie müssen also nicht die einzelnen Typdefinitionen angeben, sondern nur diese einzelne Datei. – poke

+0

Ich hatte das gleiche Problem. Danke für die Lösung ... –

+0

@poke ja, es gibt die index.d.ts im typings Ordner, mit allen Referenzen (auch die es6 typings), aber es funktioniert nicht, ich kenne den Grund nicht. –

0

Ich habe das gleiche Problem konfrontiert und die Installation der es6-Shim

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

und Referenzierung das gleiche

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

hat es zu beheben.

Verwandte Themen