下面是我的代碼:
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 的方法是否正確(輸入虛擬函式)?
uj5u.com熱心網友回復:
要有選擇地禁用插件規則生成的警告,請使用語法
// eslint-disable-line <plugin>/<rule>
在你的情況下:
handleRecipeDelete: (id) => null, // eslint-disable-line @typescript-eslint/no-unused-vars
我不知道您創建背景關系的方法是否正確,這是您需要在應用程式中測驗的內容。
uj5u.com熱心網友回復:
禁用警告應該是最后的選擇。這里有幾個替代方案:
丟棄引數:
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; }
uj5u.com熱心網友回復:
在您的功能上方,您可以添加 // @ts-ignore
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/392705.html
上一篇:如何創建通用物體訂閱者
下一篇:打字稿中的函式
