当使用 ES6 模块语法导出返回类 Typescript 实例的工厂函数时,会产生以下错误:
错误 TS4060:导出函数的返回类型具有或正在使用私有名称“路径”。
从paths.ts:
//Class scoped behind the export
class Paths {
rootDir: string;
constructor(rootDir: string) {
this.rootDir = rootDir;
};
};
//Factory function: returns instances of Paths
export default function getPaths(rootDir:string){
return new Paths(rootDir);
};
这个合法的 ES6 javascript。但是,我发现的唯一解决方法是导出类。这意味着当它被编译为 ES6 时,该类被导出,从而违背了在模块中确定它的目的。例如:
//Class now exported
export class Paths {
rootDir: string;
constructor(rootDir: string) {
this.rootDir = rootDir;
};
};
//Factory function: returns instances of Paths
export default function getPaths(rootDir:string){
return new Paths(rootDir);
};
我错过了什么吗?在我看来,打字稿应该支持这种模式,尤其是在模式变得更加突出的 ES6 编译中。