2
我在「或」類型中發現了奇怪的行爲。不知道,如果它是一個錯誤或功能... 我想實現的:我的變量應該只允許一個屬性'數據'的對象或一個屬性'記錄'的對象。但不是既有'數據'又有'財產'的對象。 所以:typescript 2.4.2「or」type strange behavior
type X = {
data: string
};
type Y = {
records: {
[recordId: number]: {
[attributeName: string]: any,
}
},
};
type XorY = X | Y;
let a:XorY = {
data: 'something',
records: {
12: {
someKey: 'someValue',
}
}
};
在我看來,分配到應該拋出一個錯誤。任何想法,我如何在ts中做這樣的檢查?
通常,'|'表示'或'和''^意味着XOR。其中'OR'包含在內,'XOR'是唯一的。你自己說這是'OR',所以我有點困惑,爲什麼你會認爲'XOR'會在這裏被使用?我可以看到有獨家工會的效用,但我認爲包容性工會更有用。考慮一下所有現有的JavaScript庫,它們都有可以接受字符串的函數或者一個元素。希望將您的支持添加到我關聯的github問題中,可以幫助他們瞭解該功能有多少興趣。 – AndyJ