При использовании синтаксиса модуля 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);
};
Этот законный javascript ES6. Однако единственное, что я нашел, - это экспортировать класс. Это означает, что когда он скомпилирован в 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, где шаблон становится более заметным.