Skip to content

Jenis utiliti TypeScript diterangkan

Jenis utiliti terbina dalam TypeScript bersama kata kunci yang menyertainya, dikelompokkan mengikut tugas: membentuk semula objek, menapis union, menerangkan fungsi, mentransformasi string literal, dan menangkap jenis daripada nilai. Setiap baris menunjukkan jenisnya dan alias sebenar yang anda akan tulis.

Jenis utiliti ialah fungsi generik untuk jenis: ia menerima satu atau dua jenis dan mengembalikan jenis baharu, jadi anda tidak perlu menulis setiap bentuk secara manual. Ia paling berguna untuk jenis terbitan, apabila sumber kebenaran ialah jenis atau nilai lain dan anda ingin jenis anda mengikutinya secara automatik. Peraturan praktikalnya: terbitkan, jangan pendua — jika anda mengubah sumbernya, jenis terbitan turut berubah.

Jadual rujukan · 22 entri
22 of 22 rows
Bentuk objek
T dengan setiap sifat dijadikan pilihan.type Update = Partial<User>
T dengan setiap sifat dijadikan wajib.type Strict = Required<Opts>
T dengan setiap sifat dijadikan readonly.type Frozen = Readonly<User>
T dengan hanya kunci dalam K dikekalkan.type Preview = Pick<User, "id" | "name">
T dengan kunci dalam K dibuang.type SafeUser = Omit<User, "password">
Objek yang kuncinya ialah K dan nilainya ialah V.type Scores = Record<string, number>
Penapisan union
Union U dengan ahli yang boleh di-assign kepada X dibuang.type NoNull = Exclude<T, null>
Ahli U yang boleh di-assign kepada X.type OnlyStr = Extract<T, string>
T dengan null dan undefined dibuang.type Def = NonNullable<T>
Jenis fungsi
Tuple jenis parameter fungsi F.type P = Parameters<typeof fn>
Jenis yang dikembalikan oleh fungsi F.type R = ReturnType<typeof fn>
Tuple jenis parameter konstruktor F.type C = ConstructorParameters<typeof Date>
Jenis instance yang dihasilkan oleh konstruktor F.type D = InstanceType<typeof Date>
Jenis yang diselesaikan oleh Promise, secara rekursif.type Data = Awaited<Promise<User>>
Transformasi string literal
String literal S dalam huruf besar.type A = Uppercase<"abc"> // "ABC"
String literal S dalam huruf kecil.type B = Lowercase<"ABC"> // "abc"
S dengan aksara pertama dalam huruf besar.type C = Capitalize<"abc"> // "Abc"
S dengan aksara pertama dalam huruf kecil.type D = Uncapitalize<"Abc"> // "aBc"
Kata kunci berkaitan
Union kunci sifat jenis objek T.type K = keyof User
Jenis bagi sesuatu nilai, tanpa menulisnya semula.type Config = typeof defaults
Menangkap sesuatu jenis di dalam conditional untuk diguna semula.type El<T> = T extends Array<infer I> ? I : never
Memilih jenis X atau Y berdasarkan sama ada T boleh di-assign kepada U.type IsStr<T> = T extends string ? true : false