Skip to main content

Type queries

TypeScript 可以透過 keyoftypeof來取得既有型別的資訊,例如屬性或方法

keyof

用於從物件型別取得所有屬性 key 值

type Person = {
name: string;
age: number;
};

type PersonKeys = keyof Person; // 為 "name" | "age" 的聯合型別

typeof

用於取得變數的型別

const user = {
name: "Alice",
age: 30,
};

type UserType = typeof user; // 取得 user 變數的型別

// userData 必须符合 user 變數的型別
const userData: UserType = {
name: "Bob",
age: 25,
};

透過 index 存取型別

透過 index 也可以從 array 或 object 型別取得資訊

interface Car {
make: string;
model: string;
year: number;
color: {
red: string;
green: string;
blue: string;
};
}
// "color"為index,此時carColor 需要符合 Car.color 的規範
let carColor: Car["color"];

//可以使用 Unions 作為index,此時carProperty的型別為 number | {red: string green: string;blue: string;}
let carProperty: Car["color" | "year"];

參考資料