Réponses
Trop de publicités?C'est corrigé dans la Production de la Version 3.2. Voir Les Notes De Version.
Ressemble à avec la propagation d'un type générique n'est pas encore pris en charge, mais il y a un GitHub question à ce sujet: Microsoft/fichier d'enregistrement#10727.
Pour l'instant, vous pouvez soit utiliser l'assertion de type comme @Jevgeni a commenté:
function foo<T extends object>(t: T): T {
return { ...(t as object) } as T;
}
ou vous pouvez utiliser Object.assign
qui a bon définitions de type.
function foo<T extends object>(t: T): T {
return Object.assign({}, t);
}
La Version 3.2 de Tapuscrit corrigé cela. Les deux PRs que l'amélioration de la gestion de la propagation et de repos paramètres sont les suivants:
- Objet générique reste de variables et de paramètres
- Générique propagation des expressions dans les littéraux d'objet
Vous pouvez l'essayer dès maintenant en utilisant npm install typescript@3.2
.
Avec 3,2 votre code fonctionne comme est.
La Version 3.2 a été publié le 29 novembre 2018, vous pouvez en lire plus à ce sujet ici.