我正在阅读here关于对象传播语法的内容,我正在尝试在我的项目中使用它,我的设置如下:
在我的reducer.ts中我有
export interface State {
[id: number]: string
}
export function reducer(state= {}, action: Action): State {
case 'TEST':
return {
...state,
2: 'foo'
}
}
但是我得到了以下编译错误,我正在试图找出错误:
Property assignment expected
Type '{ 2: string; state: State; }' is not assignable to type 'State'
Object literal may only specify known properties, and 'state' does not exist in type 'State'
有什么想法吗?谢谢!
答案 0 :(得分:1)
不使用您正在使用的TypeScript版本。
支持对象属性扩展语法为introduced in TypeScript 2.1:
对象传播和休息
TypeScript 2.1支持ES2017 Spread and Rest。
与数组传播类似,传播对象可以很方便地获得浅层副本:
let copy = { ...original };