Max*_*lan 6 javascript types type-conversion typescript typescript-typings
type a = 'one' | 'two'
Run Code Online (Sandbox Code Playgroud)
我想要一个type b
赞
type b = 'ONE' | 'TWO'
Run Code Online (Sandbox Code Playgroud)
所以我试过了
type a = 'one' | 'two'
type b = {[P in a]: P['toUpperCase']}
Run Code Online (Sandbox Code Playgroud)
但这并不能做我想要它做的事情。
感谢您阅读:)
您现在可以在即将发布的 4.1 版本中执行此操作,引入了Template Literal Types:
type A = 'one' | 'two'
type B = `${Uppercase<A>}`
let b: B = 'one' // Type '"one"' is not assignable to type '"ONE" | "TWO"'.
Run Code Online (Sandbox Code Playgroud)
这里是代码:
type A = 'one' | 'two'
type B = Uppercase<A>
let b: B = 'one' // Error
Run Code Online (Sandbox Code Playgroud)
PS我不明白为什么在之前的评论中使用了更复杂的形式来写同样的东西
编辑:Derek Nguyen(最佳答案)现在已经用更新、更简单的解决方案改变了他的答案。