any
type:
L' any
type représente tous les possibles JS valeurs. Chaque type est assignable à type any
. Par conséquent, le type d' any
est un universel supertype du type de système. Le TS compilateur va permettre à toute opération sur valeurs saisies any
. Par exemple:
let myVar: any;
myVar[0];
myVar();
myVar.length;
new myVar();
En de nombreuses occasions, c'est trop indulgent de la TS compilateur. c'est à dire permettre à des opérations qui nous aurait connu pour être résultant en une erreur d'exécution.
unknown
type:
L' unknown
type représente (comme any
) de tous les possibles JS valeurs. Chaque type est assignable à type unknown
. Par conséquent, le type d' unknown
est un autre universel supertype du type de système (à côté de la any
). Cependant, le TS compilateur de ne pas permettre à toute opération sur valeurs saisies unknown
. En outre, l' unknown
type est uniquement attribuables au type d' any
. Un exemple permettra de clarifier ce:
let myVar: unknown;
let myVar1: unknown = myVar; // No error
let myVar2: any = myVar; // No error
let myVar3: boolean = myVar; // Type 'unknown' is not assignable to type 'boolean'
// The following operations on myVar all give the error:
// Object is of type 'unknown'
myVar[0];
myVar();
myVar.length;
new myVar();