假设我有一个名为 run 的函数表达式:
let run = function(){
};
我想在这个运行函数中添加一个名为“default”的属性,一个对自身的引用。
run.default = run;
这是为了支持 JS 中的多种模块导出格式。
我听说最好的方法是使用命名空间。
这是我的实际代码:
namespace run {
export interface Run {
(paths: Array<string>, opts: run.IOpts, cb: Function): void
default: Run;
}
export interface IOpts {
babelExec?: string,
all?: boolean
}
}
const run : run.Run = function (paths: Array<string>, opts: run.IOpts, cb: Function): void {
//....
}
run.default = run;
export = run;
但我收到这个警告:
有谁知道为什么会出现该错误消息?
如您所见,TS 认为我没有默认属性的属性类型,但我很确定我使用命名空间声明......或者没有?被这个错误弄糊涂了——错误/警告似乎不正确。