TypeScript 字符串字面量重命名在对象联合中不起作用,

iyfamqjs  于 6个月前  发布在  TypeScript
关注(0)|答案(4)|浏览(50)

TypeScript版本: 4.2.0-dev.20201109
搜索词:

字符串字面量重命名

代码:

type Actions = { type: 'one', payload: number } | { type: 'two', payload: boolean }
const q: Actions = { type: 'one', payload: 1 }

预期行为:

重命名'type'字段的值时,也应重命名实际变量中的值。例如,如果在类型Actions中重命名了'one',TS也应重命名q变量中的type字段,反之亦然。

实际行为:

看起来重命名根本不起作用

** playground链接:**

https://www.typescriptlang.org/play?ts=4.2.0-dev.20201109#code/C4TwDgpgBAggxsAlgewHYGcoF4oG8qiQBcUA5GhKQDRRgCGIANsnQCYmoCuAtgEYQAnKAF8oAHzwFwEEqWAB3ZNVoNmbEr2TJGEOqhEAoOGnTAoARxLwkJ7JMIyyFZfSYt2UAIwigA

相关问题:

#5602
#39298

mnemlml8

mnemlml81#

似乎重命名关键作品

@aspirisen 你能提供重现步骤吗?

vybvopom

vybvopom2#

我正在谈论字符串字面量的重命名,更改了工单描述。

mhd8tkvw

mhd8tkvw3#

我认为这是一个相当重要的优先事项,许多人使用类型化的动作/事件(在redux等中)。他们只是不知道它可以在不痛苦和额外替换工作的情况下重构。

pjngdqdw

pjngdqdw4#

请尝试这个解决方法:

interface A1 { type: 'one', payload: number }
interface A2 { type: 'two', payload: boolean }

type Actions = A1 | A2

const q: Actions = { type: 'one', payload: 1 }

相关问题