下面是一篇关于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)

javascript - 不能在 typescript 上分配 reducer ?-LMLPHP
我相信我一直在关注每一件事,在这里,我也想补充一下,但是我在争论的热情上犯了错误,我不知道为什么,帮助?

最佳答案

关键在于:
类型“storeState未定义”不能分配给类型“storeState”。
类型“未定义”不能分配给类型“storeState”。ts(2345)
听起来您需要启用严格的空检查(--strictNullChecks)。如果没有它们,基本上代码中的每种类型都隐式地YourType | undefined,但是提供这个回调的对象似乎需要一个接受/提供确切StoreState,而不是StoreState | undefined的回调。更多关于可空类型和严格的空检查here
(或者我可能把棍子的末端弄错了,而你确实启用了严格的空检查,但是你所使用的东西并不期望它们是空的。但我认为我的方法是正确的。)

关于javascript - 不能在 typescript 上分配 reducer ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55181466/

10-09 17:05