Уничтожение нескольких типов с использованием значений по умолчанию - PullRequest
2 голосов
/ 25 октября 2019

Я хочу использовать деструктуризацию для нескольких типов с общими свойствами и значением по умолчанию для других.

interface Software {
    id: number;
    name: string;
}

interface VersionedSoftware extends SoftwareShape {
    version: string;
}

Я пробовал оба следующих решения.

function post1({ id, version = '' }: Software | VersionedSoftware) {
    // ...
}

function post2({ id, ...versioned }: Software | VersionedSoftware) {
    const { version = '' } = versioned;
    // ...
}

Но получил ошибку

Свойство «версия» не существует для типа «Программное обеспечение |VersionedSoftware '.

Я ожидаю, что он будет работать, так как я определил значение по умолчанию для свойства версии

Существует ли какой-либо синтаксис, разрешающий такое использование?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...