Extracting type from...

typescript

Extracting type from string:
другие самплы
type DictType = {
    '111': number,
    '222': string
}

// type Keys = '111'|'222';
type Keys = keyof DictType;
type QueryString<TypeName extends keyof DictType> = `-${TypeName}`;

let s: QueryString<'111'> = '-111';

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 r = func(s);  // number
(ваш голос учтен)

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