Fre*_*ind 8 typescript immer.js
当我有一个具有嵌套可选字段的对象时,例如:
type FormState = {
aaa?: {
bbb?: {
ccc?: number
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我想aaa.bbb.ccc在打字稿中设置值时,我必须:
import produce from "immer";
const formState: FormState = {}
const target = produce(formState, draft => {
draft.aaa = draft.aaa ?? {}
draft.aaa.bbb = draft.aaa.bbb ?? {}
draft.aaa.bbb.ccc = 1;
})
Run Code Online (Sandbox Code Playgroud)
有什么办法可以让它变得更简单吗?
可选的链接语法在这里不起作用:
draft?.aaa?.bbb?.ccc = 1; // compilation error
Run Code Online (Sandbox Code Playgroud)
一个小演示:https://github.com/freewind-demos/typescript-immer-set-value-to-nested-optional-fields-demo
| 归档时间: |
|
| 查看次数: |
574 次 |
| 最近记录: |