GOOGLE ADS

суббота, 7 мая 2022 г.

Интерфейс машинописного текста для динамического объекта

Предположим, у меня могут быть такие объекты:

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,
}

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...