我想定义一个这样的类型:
type Response = {
type: 'a',
value: string
} | {
type: ???, // any other string except 'a'
value: number
}
有可能吗?
我尝试过:
type OtherStrings = Exclude<string, 'a'>
但是它没有按我预期的那样工作。
答案 0 :(得分:2)
我想没有什么比这可能的更好了
type OtherStrings<T> = T extends 'a' ? never : string
const OtherStrings: OtherStrings<'b'> = 'b'
const OtherStrings: OtherStrings<'a'> = 'a' // err
PS。您应该明确列出要允许或不允许的所有可能的字符串选项,而不是像这样的骇客。