typescript
get type from value by key:
type DictType = { '111': number, '222': string } // type Keys = '111'|'222'; type Keys = keyof DictType; type QueryString<TypeName extends keyof DictType> = `-${TypeName}`; let obj: DictType = { '111': 1, '222': '2' } function func<T extends Keys>(s: QueryString<T>) : DictType[T]{ let key = s.slice(1) as Keys return obj[key] as DictType[T]; } let n: QueryString<'111'> = '-111'; let s: QueryString<'222'> = '-222'; let num = func(n); // number let str = func(s); // string
(ваш голос учтен)