@Boris007

Как указать тип ключей объекта одно или более из перечисленных полей?

Есть список ключей
export interface Columns {
    id: boolean;
    name: boolean;
}

export const columns: Columns = {
    id: true,
    name: true,
}


Функция
async readBy(data: Data) {
   ...
}


Вызов функции
id = '2423242'
name = 'Boris'
readBy({id})
readBy({id, name})


Как мне типизировать аргумент data, чтобы он был равен одному из ключей объекта columns?

И как сделать тоже самое, если у меня есть список
type Columns = 'id' | 'name'

Пытался сделать через keyof, но он выдает ошибку
  • Вопрос задан
  • 35 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
type Keys = 'id' | 'name';
type Data = Record<Keys, string>;


если поля не обязательные, так:
type Keys = 'id' | 'name';
type Data = Partial<Record<Keys, string>>;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы