@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'
}
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
type PlaceholdersFrom<
    T extends ObjectPlaceholders, K extends keyof ObjectPlaceholders
> = T[K]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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