typescript高級類型語法 TypeScript高級類型
TypeScript中的高級類型是一組強(qiáng)大而靈活的工具,可以幫助我們更好地定義和使用類型。本文將詳細(xì)介紹以下幾個常用的高級類型語法: 1. 泛型 泛型是一種在定義函數(shù)、接口或類時使用參數(shù)化類型的方
TypeScript中的高級類型是一組強(qiáng)大而靈活的工具,可以幫助我們更好地定義和使用類型。本文將詳細(xì)介紹以下幾個常用的高級類型語法:
1. 泛型
泛型是一種在定義函數(shù)、接口或類時使用參數(shù)化類型的方式。通過使用泛型,我們可以將類型作為參數(shù)傳遞給函數(shù)或類,從而增加代碼的靈活性和復(fù)用性。例如:
function identity(arg: T): T {
return arg;
}
let result identity("Hello");
console.log(result); // 輸出:Hello
2. 條件類型
條件類型是一種根據(jù)類型條件判斷來確定最終類型的方式。通過使用條件類型,我們可以根據(jù)不同的類型條件選擇性地操作類型。例如:
type TypeName
T extends string ? "string" :
T extends number ? "number" :
T extends boolean ? "boolean" :
T extends undefined ? "undefined" :
"object";
type A TypeName; // 類型為 "string"
type B TypeName; // 類型為 "number"
type C TypeName; // 類型為 "boolean"
type D TypeName; // 類型為 "undefined"
type E TypeName
3. 映射類型
映射類型是一種通過映射現(xiàn)有類型的所有屬性,并可選地將其修改為新的類型的方式。通過使用映射類型,我們可以靈活地操作現(xiàn)有類型的屬性。例如:
type ReadonlyObj {
readonly [P in keyof T]: T[P];
}
type Person {
name: string;
age: number;
}
type ReadonlyPerson ReadonlyObj;
const person: ReadonlyPerson {
name: "Alice",
age: 25
};
"Bob"; // 報錯:不能修改只讀屬性
本文只介紹了TypeScript中幾個常用的高級類型語法,還有很多其他有用的高級類型,如keyof、typeof、infer等,建議開發(fā)者深入學(xué)習(xí)和使用,以提升自己在TypeScript類型系統(tǒng)上的應(yīng)用能力。