У меня есть интерфейс
interface Foo {
name: string
subject: string
body: string
}
И функция, которая принимает Foo | {}
, где я деструктурирую свойства и что-то с ними делаю, если они не пустые
const doStuff = ({body, subject, name}: Foo | {}) => {
const errors = [
body?.trim() && `body`,
subject?.trim() && `subject`,
name?.trim() && `name`,
].filter(x => x);
setErrors(errors)
...
}
деструктуризация не компилируется, потому что ... это может быть объект без этих свойств. Как же я могу сказать машинописи, что это круто, и я хочу, чтобы в этом случае эти свойства были undefined
, не прибегая к @ts-ignore
или any
?