Wie benutzt man ES6-Versprechen mit Typoskript?
Lese ich diese Frage ALSO aber Schwierigkeiten haben, verspricht die Arbeit mit Typoskript. Hoffentlich können wir eine klare Führung.
Das ist für eine server/Knoten Projekt. Ich bin tatsächlich mit neuesten iojs, aber targeting-ES5 als Ausgabe.
$ tsd query es6-promise --action install --save
$ npm install --save es6-promise
//typescript code:
///<reference path="../../typings/es6-promise/es6-promise.d.ts"/>
var Promise = require("es6-promise").Promise;
require('es6-promise').polyfill();
function test():Promise {
var p:Promise = new Promise();
return p;
}
dieser gibt die Fehlermeldung:
Cannot find name 'Promise'.
//alternativ:
var p = new Promise<string>((resolve, reject) => {
resolve('a string');
});
//error=> Untyped function calls may not accept type arguments.
Was ist der empfohlene Weg, um zurückzukehren ein Versprechen von Ihrem eigenen Knoten, server-side-code?
Referenzen:
-
https://github.com/borisyankov/DefinitelyTyped/blob/master/es6-promise/es6-promise-commonjs-tests.ts
InformationsquelleAutor der Frage dcsan | 2015-09-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
main.ts
tsconfig.json
compileandrun.sh
InformationsquelleAutor der Antwort Ilya Kharlamov
Folgenden wurde auf v2.1.1+ mit dem Ziel zu
es5
War ich in der Lage zu verwenden Verspricht mit
async/await
durch die Installationes6-promise
und dann das hinzufügen dieser auf den Anfang der Datei:Und diese zu
tsconfig.json
Mithilfe der
import { Promise }
form nicht für mich arbeiten, wie andere Bibliotheken wurden abstürzt (ex: axios)InformationsquelleAutor der Antwort BrunoLM
Musste ich polyfill diese in einen anderen Rahmen (insbesondere axios), die ich aber nicht brauchen, um tatsächlich meine eigenen verspricht, so ist keine dieser Lösungen bei mir funktioniert. Glücklicherweise, die Antwort war einfach, wenn auch gut versteckt:
InformationsquelleAutor der Antwort bvoyelr
Fügen Sie die folgenden
package.json
:InformationsquelleAutor der Antwort Luis Cantero
Ziel wechseln zu "es6" in Ihrem tsconfig.json
Installieren oder TypeScript for Visual Studio 2015 können dieses problem auch lösen, ohne tsconfig ändern.json
https://www.microsoft.com/en-us/download/details.aspx?id=48593
InformationsquelleAutor der Antwort Jie Wang