TypeScript联合类型介于" newable"或功能

时间:2017-03-29 22:47:00

标签: typescript

我有一个函数foo,我想接受一个参数bar,它是一个&#34; newable&#34; ({ new(...args: Array<any>): any; })或函数返回类型any。

我尝试了以下两种方法,但在第一个示例中bar根据编译器的类型为() => any,在第二个示例中,我在{{上获得了语法解析错误1}} )的消息&#34;输入预期&#34;。

() => any

请注意我不想使用type Newable = { new (...args: Array<any>): any; }; function foo1(bar: () => any | Newable) { } function foo2(bar: Newable | () => any) { } 类型 - 我想更好地控制功能细节。

1 个答案:

答案 0 :(得分:5)

您需要将() => any括在括号中。像这样:

type Newable = { new (...args: Array<any>): any; };

function foo1(bar: (() => any) | Newable) {
    //...
}

function foo2(bar: Newable | (() => any)) {
    //...
}