我在my_class.ts
export default class MyClass {}
我在构造函数
中有另一个类使用它import MyClass from "./my-class.ts";
export default class MyOtherClass {
constructor(public myClass: MyClass) {}
}
在我main.ts
运行代码时出现引用错误(编译时没有错误)
import MyClass from "./my-class.ts";
import MyOtherClass from "./my-other-class.ts";
const myOtherClass = new MyOtherClass(new MyClass());
^^^^^^^
ReferenceError: my_class_1 is not defined
如果我将代码更改为
const myClass = new MyClass();
const myOtherClass = new MyOtherClass(myClass);
有效。
当我将TypeScript从2.8.3升级到2.9.1时发生了这种情况。 我检查了编译的JavaScript代码,它们在2.8.3和2.9.1之间完全相同。
答案 0 :(得分:1)
我找出了根本原因。这与v2.9中的TypeScript转换模块中的一些更改有关。当我编译并运行我的源代码,或者使用带有默认选项的ts-node
时,一切都运行良好。但是当我使用node -r ts-node/register/transpile-only main.ts
时,我收到了这个错误。
TypeScript中的开发人员已经承认了这个问题,他们说它将在v2.9.2中修复。
https://github.com/TypeStrong/ts-node/issues/591 https://github.com/Microsoft/TypeScript/issues/24620