#javascript #reactjs #typescript #next.js
Вопрос:
Я хочу сделать компонент повторного использования формы чем-то вроде этого
<Form onEdit={onEdit}} />
<Form onAdd={onAdd}} />
В моей Форме
const FormTodo = ({ onAdd, onEdit,}: FormProps) => {}
Я хочу сделать что-то вроде этого
export interface FormProps {
onAdd?: (data: string) => void;
onEdit?: (someText: string) => void;
}
проблема в том ? (необязательно) это не позволяет мне ставить флаг
Комментарии:
1. Что вы подразумеваете под «поставить флаг»? Что вы не можете позвонить
onAdd()
, потому что это, возможно, не определено?2. Похоже, вам нужно проверить, существует ли функция, прежде чем вызывать ее. Напр..
if (typeof onAdd === "function") onAdd(...)
Если требуется хотя бы один из onAdd или onEdit, вы можете использовать тип объединения для указания этогоtype Props = { onAdd: (data: string) => void } | { onEdit: (someText: string) => void
.3. спасибо вам обоим @cdimitroulas