typescript
Типизация возвращаемого значения функции в зависимости от принятой строки в качестве параметра:
type Types = { str: string, num: number } export type Some<T extends keyof Types> = Types[T] function func<T extends keyof Types>(arg: T): Some<T> { return 2 as Some<T> } let n = func('num') // `n` is number now let s = func('str') // `s` is string now // export type Some<T extends 'str' | 'num'> = T extends 'str' ? string : number // export type Some<T extends keyof Types> = T extends 'str' ? string : number
(ваш голос учтен)