【发布时间】:2018-05-09 15:32:07
【问题描述】:
我有以下代码:
export interface IStartCreate1 {
(desc?: string, opts?: IDescribeOpts, arr?: Array<string | IDescribeOpts | TCreateHook>, fn?: TCreateHook): void;
tooLate?: boolean;
}
export interface IStartCreate2 {
(opts?: IDescribeOpts, arr?: Array<string | IDescribeOpts | TCreateHook>, fn?: TCreateHook): void;
tooLate?: boolean;
}
export interface IStartCreate3 {
(arr?: Array<string | IDescribeOpts | TCreateHook>, fn?: TCreateHook): void;
tooLate?: boolean;
}
export interface IStartCreate4 {
(fn: TCreateHook): void;
tooLate?: boolean;
}
export type IStartCreate = IStartCreate1 | IStartCreate2 | IStartCreate3 | IStartCreate4;
然后我有一个像这样的对象:
const v = {
create: function(){} as IStartCreate
}
v.create([]);
我收到此错误消息:
无法调用类型缺少调用签名的表达式。
我认为空数组会匹配 IStartCreate3
我查看了其他带有类似错误消息的 SO 问题,但我无法弄清楚这一点!
【问题讨论】: