есть довольно интересная проблема, которую я не могу решить на самом деле.
Я хочу создать функцию, которая принимает объект функций и возвращает объект с теми же ключами, но с другим типом возврата (тип возврата THEзависит от значения аргумента.
Например:
declare function add(a: number, b: number): number
declare function str(a: string, b: string): string
declare function createObject(obj)
const result = createObject({
addFn: add,
strFn: str
})
/*
result's TYPE should equal:
{
addFn: [number, (a: number, b: number) => number],
strFn: [string, (a: string, b: string) => string]
}
*/
По моему мнению, это кажется возможным решить, но я не уверен, каким образом.следующие строки:
type GenericHashTable<T> = { [key in keyof T]: T[key] };
function createAPI<T extends { [k: string]: any }>(fetchers: T) {
const obj: GenericHashTable<T> = fetchers;
return obj;
}
Но этот decl не позволит мне правильно изменить тип возвращаемого значения.