下面是我的代码:
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 (输入虚拟函数)的方法正确吗?
发布于 2021-12-24 11:08:21
若要选择性地禁用插件规则生成的警告,请使用以下语法
// eslint-disable-line <plugin>/<rule>就你而言:
handleRecipeDelete: (id) => null, // eslint-disable-line @typescript-eslint/no-unused-vars我不知道您创建上下文的方法是否正确,这是您需要在应用程序中测试的内容。
发布于 2021-12-24 09:10:40
禁用警告应该是最后的选择。这里有两种选择:
handleRecipeDelete:(_) =>空
handleRecipeDelete:() =>空
const RecipeContext = createContext();
并在访问上下文时执行空检查,通常是在自定义钩子中完成的:
函数useRecipeContext() { context = useContext(RecipeContext);if (!context) {抛出新错误(“缺失RecipeContext.Provider值”);}返回上下文;}
发布于 2021-12-24 07:55:17
在您的函数之上,可以添加// @ts-ignore
https://stackoverflow.com/questions/70470644
复制相似问题