下面是一篇关于ReDux+打字稿的微软教程:https://github.com/Microsoft/TypeScript-React-Starter但不知怎么说,最后一部分我被卡住了:
const store = createStore<StoreState, any, any, any>(
enthusiasm,
{
enthusiasmLevel: 1,
languageName: 'TypeScript'
},
composeEnhancers(applyMiddleware(thunk))
);
这是我在以下截图中遇到的错误:
Argument of type '(state: StoreState, action: EnthusiasmAction) => StoreState' is not assignable to parameter of type 'Reducer<StoreState, any>'.
Types of parameters 'state' and 'state' are incompatible.
Type 'StoreState | undefined' is not assignable to type 'StoreState'.
Type 'undefined' is not assignable to type 'StoreState'.ts(2345)
我相信我一直在关注每一件事,在这里,我也想补充一下,但是我在争论的热情上犯了错误,我不知道为什么,帮助?
最佳答案
关键在于:
类型“storeState未定义”不能分配给类型“storeState”。
类型“未定义”不能分配给类型“storeState”。ts(2345)
听起来您需要启用严格的空检查(--strictNullChecks
)。如果没有它们,基本上代码中的每种类型都隐式地YourType | undefined
,但是提供这个回调的对象似乎需要一个接受/提供确切StoreState
,而不是StoreState | undefined
的回调。更多关于可空类型和严格的空检查here。
(或者我可能把棍子的末端弄错了,而你确实启用了严格的空检查,但是你所使用的东西并不期望它们是空的。但我认为我的方法是正确的。)
关于javascript - 不能在 typescript 上分配 reducer ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55181466/