Définition de type dans le littéral d’object dans TypeScript

Dans TypeScript en classe, il est possible de déclarer un type pour une propriété, par exemple:

class className{ property : ssortingng; }; 

Comment est-ce que je devrais écrire le code pour déclarer le type pour la propriété dans le littéral d’object? Ce code ne comstack pas:

 var obj = { property: ssortingng; }; 

(Je reçois une erreur – Le nom “ssortingng” n’existe pas dans la scope actuelle).

Qu’est-ce que je fais mal ou c’est un bug?

Vous êtes assez proche, il vous suffit de remplacer le = par un : Vous pouvez utiliser un littéral de type object (voir la section 3.5.3 de la spécification) ou une interface. L’utilisation d’un littéral de type object est proche de ce que vous avez:

 var obj: { property: ssortingng; } = { property: "foo" }; 

Mais vous pouvez également utiliser une interface

 interface MyObjLayout { property: ssortingng; } var obj: MyObjLayout = { property: "foo" }; 

Utilisez l’opérateur de dissortingbution pour rendre cela succinct (en convertissant null au type souhaité).

 var obj = { property:  null }; 

Un exemple plus long:

 var call = { hasStarted:  null, hasFinished:  null, id:  null, }; 

C’est bien mieux que d’avoir deux parties (une pour déclarer les types, la seconde pour déclarer les valeurs par défaut):

 var callVerbose: { hasStarted: boolean; hasFinished: boolean; id: number; } = { hasStarted: null, hasFinished: null, id: null, }; 

Mise à jour 2016-02-10 – Pour gérer TSX (Merci @Josh)

Utilisez l’opérateur as pour TSX.

 var obj = { property: null as ssortingng }; 

Un exemple plus long:

 var call = { hasStarted: null as boolean, hasFinished: null as boolean, id: null as number, }; 

Si vous essayez d’écrire une annotation de type, la syntaxe est la suivante:

 var x: { property: ssortingng; } = ...; 

Si vous essayez d’écrire un littéral d’object, la syntaxe est la suivante:

 var x = { property: 'hello' }; 

Votre code tente d’utiliser un nom de type dans une position de valeur.

En typescript si nous déclarons l’object alors

[modificateur d’access] nom de la variable: {// structure de l’object}

 private Object:{Key1:ssortingng , Key2:number }