如何禁用来自@typescript-eslint 的警告?
How to disable warnings from @typescript-eslint?
下面是我的代码:
interface DeleteRecipeFunctionContext {
handleRecipeDelete: (id: string | number) => void;
}
const RecipeContext = createContext<DeleteRecipeFunctionContext>({
handleRecipeDelete: (id) => null, // eslint-disable-line no-unused-vars
});
createContext 要求我传入一个默认函数,因此我在传入实际函数之前传入 (id)=>null 作为虚拟占位符。我收到来自@typescript-eslint 的警告:
'id' is defined but never used @typescript-eslint/no-unused-vars
写入 // eslint-disable-warning/no-unused-vars
不会禁用警告,但 eslint-disable-warning
会。我应该如何在不关闭所有警告的情况下关闭此警告?另一方面,我使用 createContext 的方法是否正确(输入虚拟函数)?
您可以在函数上方添加 // @ts-ignore
禁用警告应该是最后的选择。这里有几个选择:
丢弃参数:
handleRecipeDelete: (_) => null
省略参数:
handleRecipeDelete: () => null
一个更可靠的选择是使您的上下文可为空。
const RecipeContext = createContext<DeleteRecipeFunctionContext | undefined>();
并在访问您的上下文时进行空检查,通常在自定义挂钩中完成:
function useRecipeContext() {
const context = useContext(RecipeContext);
if (!context) {
throw new Error("Missing RecipeContext.Provider value");
}
return context;
}
要有选择地禁用插件规则生成的警告,请使用语法
// eslint-disable-line <plugin>/<rule>
你的情况:
handleRecipeDelete: (id) => null, // eslint-disable-line @typescript-eslint/no-unused-vars
我不知道您创建上下文的方法是否正确,这是您需要在应用程序中测试的内容。
下面是我的代码:
interface DeleteRecipeFunctionContext {
handleRecipeDelete: (id: string | number) => void;
}
const RecipeContext = createContext<DeleteRecipeFunctionContext>({
handleRecipeDelete: (id) => null, // eslint-disable-line no-unused-vars
});
createContext 要求我传入一个默认函数,因此我在传入实际函数之前传入 (id)=>null 作为虚拟占位符。我收到来自@typescript-eslint 的警告:
'id' is defined but never used @typescript-eslint/no-unused-vars
写入 // eslint-disable-warning/no-unused-vars
不会禁用警告,但 eslint-disable-warning
会。我应该如何在不关闭所有警告的情况下关闭此警告?另一方面,我使用 createContext 的方法是否正确(输入虚拟函数)?
您可以在函数上方添加 // @ts-ignore
禁用警告应该是最后的选择。这里有几个选择:
丢弃参数:
handleRecipeDelete: (_) => null
省略参数:
handleRecipeDelete: () => null
一个更可靠的选择是使您的上下文可为空。
const RecipeContext = createContext<DeleteRecipeFunctionContext | undefined>();
并在访问您的上下文时进行空检查,通常在自定义挂钩中完成:
function useRecipeContext() { const context = useContext(RecipeContext); if (!context) { throw new Error("Missing RecipeContext.Provider value"); } return context; }
要有选择地禁用插件规则生成的警告,请使用语法
// eslint-disable-line <plugin>/<rule>
你的情况:
handleRecipeDelete: (id) => null, // eslint-disable-line @typescript-eslint/no-unused-vars
我不知道您创建上下文的方法是否正确,这是您需要在应用程序中测试的内容。