La lib.d.ts actuelle n'a pas de promesses définies, vous avez donc besoin d'un fichier de définition supplémentaire, c'est pourquoi vous obtenez des erreurs de compilation.
Vous pouvez par exemple utiliser (comme @elclanrs le dit) utiliser le package es6-promise avec le fichier de définition de DefinitelyTyped: définition es6-promise
Vous pouvez ensuite l'utiliser comme ceci:
var p = new Promise<string>((resolve, reject) => {
resolve('a string');
});
modifier Vous pouvez l'utiliser sans définition lorsque vous ciblez ES6 (avec le compilateur TypeScript) - Notez que vous avez toujours besoin que la promesse existe dans le runtime bien sûr (donc cela ne fonctionnera pas dans les anciens navigateurs :)) Ajoutez / modifiez ce qui suit à votre tsconfig.json
:
"compilerOptions": {
"target": "ES6"
}
edit 2
Lorsque TypeScript 2.0 sortira, les choses changeront un peu (bien que ci-dessus fonctionne toujours) mais les fichiers de définition peuvent être installés directement avec npm comme ci-dessous:
npm install --save @types/es6-promise
- source
edit3
Mise à jour de la réponse avec plus d'informations sur l'utilisation des types.
Créez un package.json
fichier avec uniquement { }
comme contenu (si vous n'avez pas encore de package.json. Appelez npm install --save @types/es6-promise
et tsc --init
. La première commande d'installation npm changera votre package.json
pour inclure l'es6-promise en tant que dépendance. Tsc --init créera un tsconfig.json
fichier pour vous.
Vous pouvez maintenant utiliser la promesse dans votre fichier dactylographié var x: Promise<any>;
. Exécutez tsc -p .
pour compiler votre projet. Vous ne devriez avoir aucune erreur.
es6-promise