TypeScript 介面型別值轉聯合型別
在 TypeScript 中,有可能從介面中獲得包含所有類型值的聯合類型嗎?
例如,當給定一個介面時
interface A {
a: string;
b: () => void;
c: number;
d: string;
e: 'something';
}
結果應該是
type B = string | () => void | number | 'something';
我完全不知道,如果這可能的話,我會如何處理這個問題。
答案#1
你可以使用 keyof 例如。
type B = A[keyof A] // will be string | number | (() => void)
類型 something 不會出現,因為編譯器不會區分類型 string 和 something——由於兩者都是字符串,它會在 type B 中省略它。
