Typescript 相同的操作有2个错误:TS2554:应为0个参数,但得到1;TS2554:应为1个参数,但得到0。打字脚本+;redux工具包

Typescript 相同的操作有2个错误:TS2554:应为0个参数,但得到1;TS2554:应为1个参数,但得到0。打字脚本+;redux工具包,typescript,redux,redux-toolkit,Typescript,Redux,Redux Toolkit,我遇到了一个非常奇怪的问题,调用CreateSicle创建的操作返回两个冲突错误: export interface UffStatusState { fetchingPickStatus: APIState; activeMerchant: string | null; displayPicker: boolean | false; } const uffStatusSlice = createSlice({ name: "uffStatus", in

我遇到了一个非常奇怪的问题,调用CreateSicle创建的操作返回两个冲突错误:

export interface UffStatusState {
  fetchingPickStatus: APIState;
  activeMerchant: string | null;
  displayPicker: boolean | false;
}

const uffStatusSlice = createSlice({
  name: "uffStatus",
  initialState: {
    fetchingPickStatus: APIState.idle,
    activeMerchant: null,
    displayPicker: false,
  } as UffStatusState,
  reducers: {
    setfetchingPickStatus: (state, fetchingAction: PayloadAction<APIState>) => {
      state.fetchingPickStatus = fetchingAction.payload;
    },
    setActiveMerchant: (state, activeMerchantAction: PayloadAction<string>) => {
      state.activeMerchant = activeMerchantAction.payload;
    },
    setDisplayPicker: (state, display: PayloadAction<boolean>) => {
      state.displayPicker = display.payload
    },
  }
});

export const { setfetchingPickStatus, setActiveMerchant, setDisplayPicker } = uffStatusSlice.actions;
export default uffStatusSlice.reducer;
导出接口UffStatusState{
fetchingPickStatus:APIState;
activeMerchant:字符串|空;
显示选择器:布尔值| false;
}
const uffStatusSlice=createSlice({
名称:“uffStatus”,
初始状态:{
fetchingPickStatus:APIState.idle,
activeMerchant:null,
显示选择器:false,
}作为UffStatusState,
减速器:{
setfetchingPickStatus:(状态,fetchingAction:PayloadAction)=>{
state.fetchingPickStatus=fetchingAction.payload;
},
setActiveMerchant:(状态,activeMerchantAction:PayloadAction)=>{
state.activeMerchant=activeMerchantAction.payload;
},
setDisplayPicker:(状态,显示:PayloadAction)=>{
state.displayPicker=display.payload
},
}
});
导出常量{setfetchingPickStatus,setActiveMerchant,setDisplayPicker}=uffStatusSlice.actions;
导出默认的uffStatusSlice.reducer;
以下是调用不带参数的操作时出现的两个冲突错误:

src/components/HeaderBar.tsx中出错:14:56 TS2554:应为0 参数,但得到1。 12 | 13 |导出默认函数HeaderBar(){

14 | const handleSelectMerchants=()=>useStoreDispatch(setDisplayPicker()); | ^^^^^^^^^^^^^^^^^^ 15 |返回( 16 | 17 |

src/components/HeaderBar.tsx中出错:14:56 TS2554:应为1 参数,但得到0。 12 | 13 |导出默认函数HeaderBar(){

14 | const handleSelectMerchants=()=>useStoreDispatch(setDisplayPicker()); | ^^^^^^^^^^^^^^^^^^ 15 |返回( 16 | 17 |

使用参数调用它,它将返回一个错误:

src/components/HeaderBar.tsx中出错:14:56 TS2554:应为0 参数,但得到1。 12 | 13 |导出默认函数HeaderBar(){

14 | const handleSelectMerchants=()=>useStoreDispatch(setDisplayPicker(true)); | ^^^^^^^^^^^^^^^^^^^^^^ 15 |返回( 16 | 17 |

src/components/MerchantSelection.tsx:64:42 TS2554中出错:应为0 参数,但得到1。 62 | } 63|

64 | const onDismiss=()=>useStoreDispatch(setDisplayPicker(false)); | ^^^^^^^^^^^^^^^^^^^^^^^ 65 | 66 |导出默认功能MerchantSelection(){ 67 | const{displayPicker}=useStoreSelector((state)=>state.uffstoreseting)

如果你在一个实验室里测试它,这似乎是可行的

您的
tsconfig.json中是否有任何不常见的设置?
strict
是否设置为
true

编辑:
您的错误实际上是另一个错误。您必须首先在组件中的某个位置使用
const dispatch=useStoreDispatch()
,然后将该分派与
dispatch(setDisplayPicker(true))
{“编译器选项”:{“目标”:“es5”,“allowJs”:true,“checkJs”:true,“skipLibCheck”:true,“esModuleInterop”:true,“allowSyntheticDefaultImports”:true,“strict”:true,“ForceConsistentCasingFileNames”:true,“module”:“esnext”,“ModuleResolveResolution”:“node”,“resolveJsonModule”:true,“isolatedModules”:true,“noEmit”:true,“jsx”:“preserve”,“lib”:[“dom”,“es2015”],“baseUrl”:“/”,”路径:{“src/*”:[“src/*”]},include:[“src”,“test/unittests”]}我尝试删除strict,它显示了相同的错误。您肯定应该有strict on,只是想确定一下。您的错误实际上是其他错误。您必须
const dispatch=useStoreDispatch()
首先在组件中的某个位置,然后将该分派与
分派一起使用(setDisplayPicker(true))