Je suis en train de créer un grand objet dont les valeurs sont limitées à seulement 3 types: Texture
, Geometry
, Script
Tapuscrit: limiter les types de valeurs objet
Mon objet ressemblerait à quelque chose comme ceci:
var assets: Assets = {
sky: <Texture>,
ground: <Texture>,
city: <Geometry>,
people: <Script>,
cars: <Script>,
sun: <Circle> // <--This should fail because it's not one of the 3 types
//...
}
Comment puis-je déclarer l'interface Assets
afin que la valeur de chaque paire valeur/clé soit limitée à ces 3 types? J'ai essayé à commencer par:
interface Assets{
key: Texture | Geometry | Script;
}
mais il pauses lorsque j'attribue
this.assets = {sky: new Texture()}
Parce qu'il est attendre que key
au lieu de sky
. Existe-t-il un moyen d'y parvenir sans imbriquer des objets dans des objets?
C'est tout! J'avais essayé et 'key: string: Texture ...' et qui sait quoi d'autre. J'essaie toujours de comprendre la différence entre <> et [] parfois. –
Marquizzo
'<>' sont pour les génériques (et l'affirmation de type) seulement –
J'ai édité ma réponse avec un lien vers les documents pour ce sujet. –