我有兩個字串文字,并基于這些字串文字創建了一個介面,如下所示:
type context = 'a' | 'b';
type statusKey = 'aTest' | 'aFinal' | 'bTest' | 'cTest'
interface State {
status: {
[c in context]: {
[key in statusKey]: {
seen: number;
total: number;
}
}
}
}
現在,我想限制內部物件的鍵:它應該只允許鍵是starts with其父物件的鍵。
因此,根據我的示例,有效的狀態物件應該是:
a: {
aTest: {
seen: number;
total: number;
};
aFinal: {
seen: number;
total: number;
};
};
b: {
bTest: {
seen: number;
total: number;
};
};
因此,簡而言之,不應a允許不以開頭的鍵,也不應允許不以 . 開頭的鍵。abb
uj5u.com熱心網友回復:
Extract實用程式型別將幫助我們提取每個statusKey可分配給模板文字型別 的字串文字${C}{string}。
interface State {
status: {
[C in context]: {
[Key in Extract<statusKey, `${C}${string}`>]: {
seen: number;
total: number;
}
}
}
}
操場
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/510424.html
標籤:打字稿打字稿打字
