一種屬性定義的含義我遇到了一個接口定義,像下面的一個:在打字稿接口
什麼是屬性定義的含義是什麼?我可以在哪裏找到關於它的解釋?
是否意味着我只能將left
/center
/right
分配給屬性assign
?
一種屬性定義的含義我遇到了一個接口定義,像下面的一個:在打字稿接口
什麼是屬性定義的含義是什麼?我可以在哪裏找到關於它的解釋?
是否意味着我只能將left
/center
/right
分配給屬性assign
?
確切的說,它是如何工作的。轉到Advanced Types並向下滾動到「字符串文字類型」
它基本上是一個簡化的枚舉類型,它只允許某些字符串值,並且對註釋通過「魔術字符串」接受行爲的庫進行註釋非常有用。
引用的文章:
字符串文字類型允許您指定的確切值的字符串 必須具備的。在實踐中,字符串文字類型與工會 類型,類型警衛和類型別名很好地結合在一起。您可以將這些功能 一起使用以獲取帶有字符串的類枚舉行爲。
type Easing = "ease-in" | "ease-out" | "ease-in-out";
class UIElement {
animate(dx: number, dy: number, easing: Easing) {
if (easing === "ease-in") {
// ...
}
else if (easing === "ease-out") {
}
else if (easing === "ease-in-out") {
}
else {
// error! should not pass null or undefined.
}
}
}
let button = new UIElement();
button.animate(0, 0, "ease-in");
button.animate(0, 0, "uneasy"); // error: "uneasy" is not allowed here
這是正確的。這意味着你將屬性限制爲這三個值之一,有效地使它像枚舉一樣工作。
interface config {
align?: 'left' | 'center' | 'right';
}
// this is valid
const a: config = {
align:'left'
}
// this is not
const b: config = {
align:'down'
}