我可以在 angular + ngrx 中使用对象扩展语法吗?
Posted
技术标签:
【中文标题】我可以在 angular + ngrx 中使用对象扩展语法吗?【英文标题】:Can I use object spread syntax in angular + ngrx? 【发布时间】:2017-08-30 16:49:10 【问题描述】:我从here 阅读了有关对象传播语法的信息,我正在尝试在我的项目中使用它,我的设置如下:
角2 角度/cli 1.0.0-rc.0 ngrx/核心 1.2.0 ngrx/存储 2.2.1 rxjs 5.1.0 打字稿 2.0.10在我的 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'
有什么想法吗?谢谢!
【问题讨论】:
【参考方案1】:不适用于您使用的 TypeScript 版本。
对对象属性传播语法的支持是introduced in TypeScript 2.1:
对象传播和休息
TypeScript 2.1 带来了对 ES2017 Spread and Rest 的支持。
类似于数组传播,传播对象可以很方便地获得浅拷贝:
let copy = ...original ;
【讨论】:
太棒了!非常感谢! 一般来说,我可以在 Angular 项目中将 typescript 版本更新为最新版本吗?或者特定版本的角度是否需要特定版本的打字稿? 我不记得最近的 TypeScript 版本有什么特别的问题。我通常使大多数东西尽可能保持最新,所以我已经有一段时间没有使用你在问题中提到的版本了。发生了重大更改,但它们已在我的代码中。 这里有一个关于版本、特性和变化的综合文档:github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript以上是关于我可以在 angular + ngrx 中使用对象扩展语法吗?的主要内容,如果未能解决你的问题,请参考以下文章
在单元测试中使用参数模拟 ngrx 存储选择器(Angular)
在 Angular 中使用 ngrx 进行状态管理时,控制台记录状态数据
是否有一些示例可以在一个命令中在 Angular 7 上创建 ngrx/Store
在使用 NGRX 使用 observables 调用 API 之前检查 Angular Store 中的数据