如何在 TypeScript 中省略字符串文字中的字符串

How to Omit a string in a String Literal in TypeScript

我知道我们可以使用 Omit<> 来键入某个对象而无需特定的道具。 我希望我们也可以将其用于字符串文字:

type possibleStrings = 'A' | 'B' | 'C'

type AorB = Omit<possibleStrings, 'C'>

但是当尝试在函数中使用类似这样的东西作为参数时,我得到了这个错误:

Type 'Pick' cannot be used as an index type.

您可以使用 Exclude 来省略字符串文字中的单个字符串。

type possibleStrings = 'A' | 'B' | 'C'

type AorB = Exclude<possibleStrings, 'C'>