any
Tipe:
The any
Tipe mewakili semua kemungkinan nilai JS. Setiap jenis ditugaskan untuk mengetik any
. Oleh karena itu tipe any
ini adalah supertipe universal dari sistem tipe. Compiler TS akan memungkinkan operasi apa pun pada nilai yang diketik any
. Sebagai contoh:
let myVar: any;
myVar[0];
myVar();
myVar.length;
new myVar();
Dalam banyak kesempatan ini terlalu lunak untuk kompiler TS. yaitu itu akan memungkinkan operasi yang bisa diketahui menghasilkan kesalahan runtime.
unknown
Tipe:
The unknown
Tipe mewakili (seperti any
) semua kemungkinan nilai JS. Setiap jenis ditugaskan untuk mengetik unknown
. Oleh karena itu tipe unknown
adalah supertipe universal lain dari sistem tipe (bersama any
). Namun, kompiler TS tidak akan mengizinkan operasi pada nilai yang diketik unknown
. Selain itu, unknown
tipe ini hanya dapat ditetapkan untuk tipe tersebut any
. Contoh akan memperjelas ini:
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
adalah sukadynamic
danunknown
sukaobject
. Saya sukaunknown
karena lebih aman. Namun nama yang membingungkan.