Предположим, у меня могут быть такие объекты:
const filters = {
name: { value: 'some-value', rank: 'some-value' },
place: { value: 'some-value', population: 'some-value' },
}
а может быть и так...
const filters = {
name: { value: 'some-value', rank: 'some-value' },
place: { value: 'some-value', population: 'some-value' },
description: { value: 'some-value', translation: 'some-value' },
popularity: { value: 'some-value', ranking: 'some-value' },
}
Как создать для этого интерфейс (динамический объект)?
Решение проблемы
Одной из возможностей было бы сделать description
и popularity
необязательным, добавив ?
, например:
Подход 1
interface Filters {
name: object,
place: object,
description?: object,
popularity?: object,
}
Дополнительные сведения о модификаторах свойств см. в документации.
Другим подходом было бы использование наследования интерфейса с использованием ключевого словаextends
Подход 2
interface ParentFilters {
name: object,
place: object
}
И для производного интерфейса
interface derivedFilters extends parentFilter {
description: object,
popularity: object,
}
Комментариев нет:
Отправить комментарий