any
tipo:
El any
tipo representa todos los valores JS posibles. Cada tipo es asignable a escribir any
. Por lo tanto, el tipo any
es un supertipo universal del sistema de tipos. El compilador de TS permitirá cualquier operación en valores escritos any
. Por ejemplo:
let myVar: any;
myVar[0];
myVar();
myVar.length;
new myVar();
En muchas ocasiones, esto es demasiado indulgente con el compilador de TS. es decir, permitirá operaciones que podríamos haber conocido como resultado de un error de tiempo de ejecución.
unknown
tipo:
El unknown
tipo representa (al igual que any
) todos los valores JS posibles. Cada tipo es asignable a escribir unknown
. Por lo tanto, el tipo unknown
es otro supertipo universal del sistema de tipos (junto any
). Sin embargo, el compilador de TS no permitirá ninguna operación en valores escritos unknown
. Además, el unknown
tipo solo se puede asignar al tipo any
. Un ejemplo aclarará esto:
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();
any
es comodynamic
yunknown
es comoobject
. Me gusta,unknown
ya que es más seguro. Aunque nombres confusos.