如何在TypeScript中从字符串联合类型排除单个值?
从字符串联合类型中排除指定值的方法
你想用Omit来排除联合类型里的值是行不通的——Omit是专门处理对象类型的工具类型,作用是移除对象的指定属性,并不适用于字符串联合类型。
要实现你的需求,直接用TypeScript内置的Exclude工具类型就可以了,它的作用就是从第一个类型参数中排除所有能赋值给第二个参数的类型:
type someType = 'type1' | 'type2' | 'type3' | 'type4'; type newType = Exclude<someType, 'type2'>; // newType 等价于 'type1' | 'type3' | 'type4'
如果需要一次性排除多个值,也可以把要排除的内容写成联合类型传入:
type newType2 = Exclude<someType, 'type2' | 'type4'>; // newType2 等价于 'type1' | 'type3'
内容的提问来源于stack exchange,提问作者1barada
相关产品推荐
相关产品推荐

