Машинописный текст, объединяющий имена ключей / строковые типы

#javascript #string #typescript #types

#javascript #строка #typescript #типы

Вопрос:

Есть ли в typescript какой-либо способ динамического объединения имен ключей / динамического объединения строковых типов? что я имею в виду под этим :

 type JoinString<A extends string, B extends string> = /*some magic*/

const example = {
foo: "b",
bar: "c"
}

type GetAnotherKeys<T> = {
 JoinString<[TKey in keyof T], "_">: T[Tkey]
}

type Result = GetAnotherKeys<typeof example>;
/*
Result ={
foo_:string
bar_:string
}

*/





 

Ответ №1:

Вот простой пример:

 type AddPrefix<T extends string>=`${T}_`

type Keys={
   name:string;
   surname:string;
}

type MapPrefix<T>={
   [P in keyof T as AddPrefix<string amp; P>]:T[P]
}

type Result = MapPrefix<Keys>
 

Более подробную информацию вы можете найти здесь

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

1. спасибо вам, добрые джентльмены, это настоящая удача, что это обновление было неделю назад

2. @MaciejDot Добро пожаловать. Вы можете принять этот ответ, это поможет другим людям