Типы в деструктурированном значении объекта в функции подобного функции параметра - PullRequest
1 голос
/ 16 апреля 2020

Итак, у нас есть некоторая функция:

const someVal = func(customObject => {console.log(customObject.data.users)});

Мы можем переписать эту функцию с синтаксисом уничтожения объектов, чтобы сделать ее более красивой и лаконичной c для пользователей значение:

const someVal = func(({ data: { users } = {}) => {console.log(users)});

Теперь представьте, что значение users должно быть описано каким-нибудь интерфейсом машинописи.

Как это должно быть встроено?

Как это?

 const someVal = func(({ data: { users } = {} : { data: { users : UserInterface }) => {console.log(users)});

UPD. данные является родовым c значение переменной

1 Ответ

0 голосов
/ 16 апреля 2020

Вы можете сделать это встроенным, но это может стать довольно грязным. Я обычно предпочитаю определять типы для лучшей читабельности:

type SomeValInput = {
  data: {
    users?: UserInterface;
  };
};
type SomeVal = (data: SomeValInput) => void;
const someVal: SomeVal = ({ data: { users } }) => console.log(users || {});

Я не включил значение по умолчанию в деструктуризацию, так как у меня были проблемы с использованием этого в сочетании с машинописью в прошлом.

...