Typescript выводит тип возврата из переданных функций, тип возврата

Возможно, я пытаюсь достичь невозможного, но здесь все в порядке.

Я хочу определить функцию (функцию A), которая будет возвращать тот же тип, что и новая функция, переданная в параметр функции A.

например.

export function test<T> ( arg:Function ):T {
    return arg;
}

function a():string {
    return 'a';
}

function b():number {
    return 0;
}

let aVal:string = test(a);
let bVal:number = test(b);

Очевидно, это позволит мне строго набирать ответы на некоторые ошибки во время компиляции.

Есть ли у кого-нибудь какие-нибудь идеи или я знаю, сплю ли я?

** Примечание. Код для демонстрации **.

Приветствия

4 голоса | спросил Jon Whitefield 6 Jpm1000000pmFri, 06 Jan 2017 18:42:42 +030017 2017, 18:42:42

1 ответ


0

Как насчет этого?

 function test<T>(arg: () => T): T {
    return arg();
}

function a(): string {
    return 'a';
}

function b(): number {
    return 0;
}

let aVal: string = test(a);
let bVal: number = test(b);

Вместо того чтобы использовать интерфейс Function, мы определили arg как функцию, которая не принимает аргументов и возвращает что-то типа T. Фактический тип T затем может быть определен переданной функцией.

ответил toskv 6 Jpm1000000pmFri, 06 Jan 2017 19:01:51 +030017 2017, 19:01:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132