当我构建项目时,我的项目不让我通过:
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