Je crée un jeu de logique simple appelé "Three of a Crime" dans TypeScript.
En essayant de pré-allouer un tableau typé dans TypeScript, j'ai essayé de faire quelque chose comme ceci:
var arr = Criminal[];
qui a donné l'erreur "Vérifier le format du terme d'expression".
a également essayé de faire cela
var arr : Criminal = [];
et cela produit "ne peut convertir aucun [] en" criminel "
quelle est la manière «TypeScript» de faire cela?
la source
Le problème de la pré-allocation correcte d'un tableau typé dans TypeScript a été quelque peu obscurci en raison de la syntaxe littérale du tableau, donc ce n'était pas aussi intuitif que je le pensais au départ.
La bonne façon serait
Cela vous donnera un tableau vide correctement typé stocké dans la variable 'arr'
J'espère que cela aide les autres!
la source
Je sais que c'est une vieille question, mais j'ai récemment rencontré un problème similaire qui n'a pas pu être résolu de cette manière, car je devais renvoyer un tableau vide d'un type spécifique.
j'ai eu
où
[]
était leCriminal[]
type.Ni
return: Criminal[] [];
nireturn []: Criminal[];
travaillé pour moi.À première vue, je l'ai résolu en créant une variable typée (comme vous l'avez correctement signalé) juste avant de la renvoyer, mais (je ne sais pas comment fonctionnent les moteurs JavaScript) cela peut créer une surcharge et c'est moins lisible.
Par souci de rigueur, je rapporterai également cette solution dans ma réponse:
Finalement, j'ai trouvé le casting de type TypeScript, ce qui m'a permis de résoudre le problème d'une manière plus concise et lisible (et peut-être efficace):
J'espère que cela aidera les futurs lecteurs!
la source
Pour une utilisation en accès public comme ci-dessous:
la source