【发布时间】:2021-08-10 04:28:52
【问题描述】:
如何将字符串文字类型创建为另一个字符串文字类型的子类型?
或者换句话说,如何从字符串文字类型中选择值来创建新类型?
例子:
type Animal = 'goldfish' | 'tuna' | 'elephant'
// I would like to use Pick:
type Fish = Pick<Animal, 'goldfish', 'tuna'>
// So that the desired result is: 'goldfish | 'tuna'
但是,这不起作用,因为Pick 仅在选择(对象)属性键时起作用。
【问题讨论】:
-
你能澄清你的限制吗?你可以简单地把它作为一个单独的文字,比如
type Fish = 'goldfish' | 'tuna';,或者作为一个交叉点,比如type Fish = Animal & ('goldfish' | 'lion');。 -
我已将所需的结果添加到问题中,可能不清楚。你说得对,我希望
type Fish = 'goldfish' | 'tuna';作为最终结果,但我想从Animal中选择值来强制执行正确的值。
标签: typescript