我想问一下,我们是否可以在 props<>() 中给出任何默认值,就像我们在函数参数中给出默认值一样
export const set = createAction(
'[Counter] Set',
props<{ value: number }>()
);
这里我想给 props 中的“value”属性一个默认的数字<{ value: number }>()。
有什么办法可以做到吗?
我尝试添加类似于我们在函数参数中所做的数字:
export const set = createAction(
'[Counter] Set',
props<{ value = 0 }>()
);
但是导致了错误!:
Operator '<' cannot be applied to types '<P extends SafeProps, SafeProps = NotAllowedInPropsCheck<P>>() => ActionCreatorProps<P>' and '{ value: number; }'
props<{ value: number }>()
它是泛型,而不是嵌入式 DSL。
您会收到该错误,因为
{ value = 0 }
不是有效类型。 { value: 0 }
是,但这意味着 value
始终是 0
。
如果您想表示有默认值,请使用
props<{ value?: number }>()
或 props<{ value?: number|0 }>()
。
然后在你的减速器中你可以有类似的东西:
export const myReducer = createReducer(
initialState,
// [...]
on(set, (state, { value = 0 } = {}) => { /* [...] */ }),
// [...]
)