101 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
102 secret={secretsMap.get(kind)!}
103 onCancel={() =>
104 new Promise((resolve) => {105 // When nothing changed, just close the secret card
106 if ((form.values.secrets[index]?.value ?? "") === (secretsMap.get(kind)?.value ?? "")) {
107 return resolve(true);
133 },
134 });
135
136 const toggle = useCallback(() => {137 if (isEditMode) return saveBoard(board);
138 setEditMode(true);
139 }, [board, isEditMode, saveBoard, setEditMode]);
331 window.addEventListener("resize", onResize);
332 const wrapper = wrapperRef.current;
333 wrapper?.addEventListener("resize", onResize);
334 return () => {335 if (typeof window === "undefined") return;336 window.removeEventListener("resize", onResize);337 wrapper?.removeEventListener("resize", onResize);338 };339 }, [wrapperRef, gridRef, onResize]);
340
341 // Handle resize of inner sections when there size changes
225 nodes.forEach(onAdd);
226 });
227
228 return () => {229 currentGrid?.off("change");230 currentGrid?.off("added");231 };232 }, [isEditMode, onAdd, onChange]);
233
234 // initialize the gridstack
22 return;
23 }
24
25 return result.data;26};
Any code paths that do not have explicit returns will return undefined
.
It is recommended to replace any implicit dead-ends that return undefined
with a return null
statement.
As a convention, undefined
signals that an unexpected value has been produced as the
result of a logical error in the program.
A null
return, on the other hand, signals that the input to a function was incorrect,
or a value was 'not found'.
Having this distinction in code helps you figure out if something was caused because of a logical error, or malformed input to a function call.
function getUser(name) {
if (userExists(name)) {
return userDb.get(name);
}
// whoops! Implicit undefined return
}
function readFile(fileName) {
if (fs.existsSync(fileName)) {
return fs.readFileSync(fileName, 'utf-8');
}
return; // Implicit undefined return.
}
function getUser(name) {
if (userExists(name)) {
return userDb.get(name);
}
// `null` indicates there is no such user.
return null;
}
function readFile(fileName) {
if (fs.existsSync(fileName)) {
return fs.readFileSync(fileName, 'utf-8');
}
// `null` indicates there is no such file.
return null;
}