Next.js setting up GraphQL .eslintrc



当我构建项目时,我的项目不让我通过:

Type error: Type 'string | string[]' is not assignable to type 'string[]'.
Type 'string' is not assignable to type 'string[]'.
12 |  const items = products({
13 |      where: {
> 14 |          slugIn: productSlug,
|          ^
15 |      },
16 |  }).nodes

我知道是一个ESLint在GraphQL上,我如何设置我的ESLint让它通过这部分?

My.eslintrc:

{
"extends": ["plugin:storybook/recommended", "next", "next/core-web-vitals", "eslint:recommended"],
"globals": {
"React": "readonly",
"JSX": "readonly"
},
"rules": {
"no-unused-vars": [
1,
{
"args": "after-used",
"argsIgnorePattern": "^_",
"react/react-in-jsx-scope": "off"
}
]
},
"overrides": [{
"files": ["*.stories.@(ts|tsx|js|jsx|mjs|cjs)"],
"rules": {
"storybook/hierarchy-separator": "error"
}
}]
}

对不起,不是eslint问题,是代码错误。

看起来像productSlug是string | string[]之间的联合类型,slugIn接受字符串数组,即string[]。要传递输入错误,可以将第14行替换为如下所示:productSlug: [productSlug]

改变
const items = products({
where: {
slugIn: productSlug,
},
}).nodes

const items = products({
where: {
slugIn: Array.isArray(productSlug) ? productSlug : [productSlug],
},
}).nodes

最新更新