#typescript
#typescript
Вопрос:
Есть ли способ сделать что-то подобное?
type Details = {
name: string
}
type Customer = {
id: string,
...Details
}
Таким образом, клиент фактически становится этим:
type Customer = {
id: string,
name: string
}
Ответ №1:
Вы можете использовать тип пересечения:
type Customer = Details amp; {
id: string
}
Из документов (курсив мой):
Тип пересечения объединяет несколько типов в один. Это позволяет вам объединять существующие типы, чтобы получить единый тип, обладающий всеми необходимыми функциями.
Комментарии:
1. Спасибо, это то, что я искал
Ответ №2:
Это можно сделать, как показано в jonrsharpe
опубликованном ответе. Вы также можете расширить тип с помощью такого интерфейса:
export type Details = {
name: string;
};
export interface Customer extends Details {
id: string;
}
const customer: Customer = {
name: 'name',
id: 'id'
};
Ответ №3:
Недавно у меня была эта проблема, и у меня был немного другой подход:
type Details = {
name: string
}
type Customer = {
id: string,
name: Details
}
Это не совсем то, что вы ищете, но это один из способов пересечения.