【问题标题】:classes_1.Person is not a constructorclasses_1.Person 不是构造函数
【发布时间】:2021-09-15 14:13:14
【问题描述】:

我正在使用自己制作的 TypeScript 项目,但在导入和导出方面遇到了一些问题。

我有一个文件夹classes,每个类都有导出该类的特定文件。然后我有一个文件index.ts,它导入所有类并从一个文件中导出它们以便于在代码中使用。

Person.ts:

class Person {}

export default Person

index.ts:

import Person from "./Person"

export { Person }

app.ts:

import { Person } from "@classes

const person = new Person()

问题是上述代码不起作用并引发错误classes_1.Person is not a constructor

我正在使用tsconfig.json 中配置的别名路径,如下所示:

"paths": {
    "@classes": ["classes"],
    "@interfaces": ["interfaces"],
    "@enums": ["enums"],
    "@const": ["const"]
}

我没有使用 TS 文档中显示的格式:"@classes/*": ["classes/*"],因为这不适合我的用例。

我用npx tsc && npx tsc-alias编译代码

如果我查看转译的 .js 代码,VSCode 会理解所有导入,但如果我使用 node ./dist/app.js 启动应用程序,它就不起作用。

【问题讨论】:

  • 你错过了一个结束"这里import Person from "./Person
  • 已修复,我在代码中正确,但无法正确复制
  • 没有别名是否可以工作? import { Person } from "./classes"
  • @Jean-Alphonse 它没有,有趣..

标签: javascript node.js typescript


【解决方案1】:

文件之间存在循环依赖关系。在index.ts 中,我正在导入多个类,它们以某种方式相互依赖。我通过将依赖类移到顶部来修复它,因此 import 语句首先导入该类。

【讨论】:

    猜你喜欢
    • 2021-08-15
    • 2013-12-25
    • 2021-01-11
    • 2015-12-04
    • 2018-11-29
    • 2016-12-04
    • 2020-12-27
    • 2021-04-05
    • 2021-06-21
    相关资源
    最近更新 更多