Разрушение в Typescript с неопределенными значениями - PullRequest
0 голосов
/ 05 июня 2018

У меня есть 2 объекта:

const a = {
    foo: "foo",
    bar: "bar",
}

const b = {
    foo: "fooooo",
}

Я хочу использовать деструктуризацию в методе с неопределенными значениями по умолчанию, например:

const c = a or b; // I don't know which one 

Затем я хочу сделать:

const { foo, bar } = c;

И я хочу, чтобы

  • foo = "fooooo" и bar = undefined или
  • foo = "foo" и bar = "bar"

Как я могу сделать это с помощью машинописи?

1 Ответ

0 голосов
/ 05 июня 2018

TypeScript не будет достаточно умен, чтобы вычесть, что {foo: string, bar: string} | {foo: string} можно записать как {foo: string, bar?: string}, поэтому вам нужно будет набрать c самостоятельно следующим образом:

const c: { foo: string, bar?: string } = Math.random() > .5 ? a : b; // doesn't matter which
const { foo, bar } = c;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...