Как вернуть тип из колбэка без явного указания?

Как вернуть корректный тип без явного указания в методе:
const makeBoolean = mackeRequest(requestBoolean, true); -> должен вернуть Promise>
const makeNumber = mackeRequest(requestNumber, 10);-> должен вернуть Promise>

Возвращает сейчас Promise>

Пример кода:
class Result<Type = unknown> { 
    constructor(public data: Type) {}

    static ok = (data:any) => {
        return new Result(data);
    }

    static fail = (error: unknown) => {
        return new Result(error);
    }
}

const requestBoolean = async (arg: boolean): Promise<boolean> => {
    return Promise.resolve(arg)
}

const requestNumber = async (arg: number): Promise<number> => {
    return Promise.resolve(arg)
}

const mackeRequest = async (callback: (...data: any) => void, ...args: any[])  => {
    try {
        const result = callback(...args);
        return Result.ok(result);
    } catch (error) {
        return Result.fail(error);
    }
}

const makeBoolean = mackeRequest(requestBoolean, true);
const makeNumber = mackeRequest(requestNumber, 10);


Пример добавил в Playground
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
WblCHA
@WblCHA
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы