Задать вопрос
@romaro

Можно ли записать этот дженерик изящнее?

В джеренике PlaceholdersFrom я думал использовать Record, но не соображу, как извлекать тип свойства:
Record<keyof T[K], >

Поэтому получилось так.

Дублирую из песочницы:
type ObjectPlaceholders = {
    props?: Record<string, string | number>;
    data?: Record<string, string | number>;
}

interface IBlock extends ObjectPlaceholders {
    data: {
        name: string;
        age: number;
    },
    props: {
        address: string;
    }
}

type PlaceholdersFrom<
    T extends ObjectPlaceholders, K extends keyof ObjectPlaceholders
> = { [P in keyof T[K]]: T[K][P] }

const obj: PlaceholdersFrom<IBlock, 'props'> = {
    address: 'ul Ivanova, 22'
}
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
type PlaceholdersFrom<
    T extends ObjectPlaceholders, K extends keyof ObjectPlaceholders
> = T[K]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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