Objet TypeScript
Un objet est une instance qui contient un ensemble de paires clé-valeur. Les valeurs peuvent être des scalaires, des fonctions, des tableaux, des objets, etc., comme dans l'exemple suivant :
L'objet ci-dessus contient des scalaires, des fonctions et des collections (tableaux ou tuples).
Instance d'objet
TypeScript
Compilez le code ci-dessus pour obtenir le code JavaScript suivant :
JavaScript
Le résultat de sortie est:
Example Google
Modèle de type TypeScript
Supposons que nous définissions un objet en JavaScript :
Si nous voulons ajouter des méthodes à l'objet, nous pouvons effectuer les modifications suivantes :
sites.sayHello = function(){ return "hello";}
Si l'approche ci-dessus est utilisée en TypeScript, une erreur de compilation se produira, car les objets en TypeScript doivent être des instances d'un type spécifique.
TypeScript
Compilez le code ci-dessus pour obtenir le code JavaScript suivant :
JavaScript
Le résultat de sortie est:
hello Example
De plus, un objet peut également être passé comme paramètre à une fonction, comme dans l'exemple suivant :
TypeScript
Compilez le code ci-dessus pour obtenir le code JavaScript suivant :
JavaScript
Le résultat de sortie est:
site1 :Example site2 :Google
Typage canard
Le typage canard (en anglais : duck typing) est un style de typage dynamique et une forme de polymorphisme.
Dans ce style, la sémantique valide d'un objet est déterminée non pas par l'héritage d'une classe spécifique ou l'implémentation d'une interface spécifique, mais par la "collection des méthodes et propriétés actuelles".
On peut l'exprimer comme suit :
« Lorsque vous voyez un oiseau qui marche comme un canard, nage comme un canard et cancane comme un canard, alors cet oiseau peut être appelé un canard. »
Dans le duck typing, l'accent est mis sur ce que le comportement de l'objet peut faire, plutôt que sur le type auquel l'objet appartient. Par exemple, dans les langages qui n'utilisent pas le duck typing, nous pouvons écrire une fonction qui accepte un objet de type « duck » et appelle ses méthodes « walk » et « quack ». Dans les langages qui utilisent le duck typing, une telle fonction peut accepter un objet de n'importe quel type et appeler ses méthodes « walk » et « quack ». Si ces méthodes qui doivent être appelées n'existent pas, une erreur d'exécution sera déclenchée. Le fait que tout objet possédant les bonnes méthodes « walk » et « quack » puisse être accepté par la fonction conduit à l'expression ci-dessus, et cette façon de déterminer le type est donc nommée en conséquence.