gpt4 book ai didi

当我在构造函数中使用 MyClass 时出现 Typescript ReferenceError : MyClass not defined,

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:18 25 4
gpt4 key购买 nike

我在 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 之间完全相同。

最佳答案

我找到了根本原因。这与 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

关于当我在构造函数中使用 MyClass 时出现 Typescript ReferenceError : MyClass not defined,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50714912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com