Get type from value ...

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
(ваш голос учтен)

Прикрепить файл