字符串的`Union`和`string`是否可以实现?

Is `Union` of strings and `string` achievable?

它们是一种方法,可以让 unionstring 类型接受一些特定的字符串和 string 吗?

type AcceptsWithString =
 | 'optionA'
 | 'optionB'
 | 'optionC'
 | string

playground

这里的目标是有一个类型可以为输入提供自动完成(列表可以很长,在某些情况下我们很容易出错)以及任何字符串?

我确实知道一个技巧,可以用来混淆 IDE,使其仍然将单个字符串显示为自动完成建议。不能保证这会永远有效,但它适用于当前版本的打字稿:

type AcceptsWithString =
 | 'optionA'
 | 'optionB'
 | 'optionC'
 | string & {}

string & {} 没有 string 没有的任何属性,因此您仍然可以为其分配任何字符串。但这让编辑器很困惑,无法确定 "optionA" 和其他的是多余的,所以它一直显示它们。