我在这里关注有关Redux +打字稿的Microsoft教程: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)
我相信我一直都在关注,在这里,我也想补充一点点,但是我对论点的热情有误,我不知道为什么,帮忙吗?
答案 0 :(得分:1)
关键部分在这里:
Type 'StoreState | undefined' is not assignable to type 'StoreState'. Type 'undefined' is not assignable to type 'StoreState'.ts(2345)
听起来您需要启用严格的null检查(--strictNullChecks
)。没有它们,代码中的每种类型基本上都是隐式的YourType | undefined
,但是您提供的回调似乎要求回调完全接受/提供StoreState
,而不是StoreState | undefined
。有关可空类型和严格的空检查here的更多信息。
(否则,我可能会犯错,而您 do 启用了严格的null检查,但是您使用的是 not 。我想我有正确的方法。)