TypeScript 字面量类型(literal type)
TypeScript 是一種 JavaScript 的超集,它提供了類型系統,可以讓開發者在編寫程式碼時更加安全可靠。其中一個重要的概念就是「字面量类型(literal type)」,它可以讓開發者更加精確地指定變數的型別,以及更加安全地使用變數。
字面量类型是指一個變數只能接受特定的值,例如:
let myNumber: 1 | 2 | 3; myNumber = 1; // OK myNumber = 4; // Error
上面的程式碼中,我們定義了一個變數 myNumber,它的型別是 1 | 2 | 3,也就是說它只能接受 1、2 或 3 這三個值。
字面量类型可以用於任何型別,例如字串:
let myString: "foo" | "bar"; myString = "foo"; // OK myString = "baz"; // Error
字面量类型可以用於任何型別,包括複合型別:
type MyType = {
foo: "foo" | "bar";
bar: number;
};
let myObject: MyType = {
foo: "foo",
bar: 1
};
myObject = {
foo: "baz",
bar: 2
}; // Error
上面的程式碼中,我們定義了一個複合型別 MyType,它有兩個屬性:foo 和 bar,其中 foo 的型別是 "foo" | "bar",也就是只能接受 "foo" 或 "bar" 這兩個值。
字面量类型可以讓開發者更加精確地指定變數的型別,以及更加安全地使用變數,因此在開發 TypeScript 應用程式時,應該多加利用字面量类型,以提高程式碼的品質。