@Bone

Как вывести тип из части интерфейса с вложенной структурой?

Допустим у меня есть такой интерфейс:

interface Book {
    id: number,
    author: {
        name: string,
        age: number,
    },
    price: {
        value: number,
        currency: Currency,
    }
}


Я хочу сделать функцию, которая будет работать только с полем author из этого интерфейса. Т.е. функция должна ожидать объект такого типа:
function doSomething(author: {name: string, age: number})
Как мне автоматически вывести тип {name: string, age: number} из интерфейса Book? Я пробовал сделатьPick<Book, "author">, но в результате получаю {author: {name: string, age: number}}, а мне надо просто {name: string, age: number}.
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
Kozack
@Kozack
Thinking about a11y
Book['author']
Но если вам нужно чтобы по программе гуляли разные куски интерфейса, то лучше разбить его на куски
interface BookAuthor { ... }
interface BookPrice { ... }
interface Book {
  id: number,
  author: BookAuthor,
  price: BookPrice
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы