You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

createAsyncThunk如何不使用_、undefined等占位符跳过首个arg参数

关于跳过createAsyncThunk第一个参数的解决方案

首先明确:没有办法完全不使用任何占位符,直接访问第二个参数中的extra属性。

原因很简单:createAsyncThunk的payload创建函数参数顺序是固定的,第一个位置对应调用thunk时传入的入参,第二个位置才是包含extra、dispatch等属性的thunkAPI对象。JavaScript函数参数按位置匹配,不存在语法可以直接跳过前面的位置参数访问后续参数。

你示例代码中把undefined作为形参名的写法是错误的,undefined是JS保留关键字,不能作为参数名使用,代码运行会直接抛出语法错误。

以下是社区公认的规范替代写法:

  • 使用单下划线_作为占位符,这是JS生态默认的「该参数无需使用」的约定标识,可读性很高:
createAsyncThunk(
    'module/fetchModule',
    async (_, { extra: api }) => {
        const { data } = await api.get('myendpoint');
        const normalized = normalize(data, [myEntity]);
        return normalized.entities;
    }
);
  • 如果担心团队成员不理解_的含义,可以使用语义化的占位符命名,明确标识该参数未被使用:
createAsyncThunk(
    'module/fetchModule',
    async (unusedThunkArg, { extra: api }) => {
        const { data } = await api.get('myendpoint');
        const normalized = normalize(data, [myEntity]);
        return normalized.entities;
    }
);
  • 如果项目开启了ESLint未使用参数校验或者使用TypeScript,可以给占位符加下划线前缀(比如_arg),大多数校验工具会自动忽略这类命名的参数,不会抛出未使用警告。

内容的提问来源于stack exchange,提问作者Luis Cárcamo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:51:01