小编典典

Typescript ReferenceError:未定义导出

all

尝试按照官方手册实现模块,我收到此错误消息:

未捕获的 ReferenceError:未定义导出

在 app.js:2

但在我的代码中,我从来没有使用过这个名字exports

我怎样才能解决这个问题?


文件

应用程序.ts

let a = 2;
let b:number = 3;

import Person = require ('./mods/module-1');

模块-1.t

 export class Person {
  constructor(){
    console.log('Person Class');
  }
}
export default Person;

tsconfig.json

{
   "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "noImplicitAny": false,
        "sourceMap": true,
        "outDir": "scripts/"
    },
    "exclude": [
        "node_modules"
    ]
}

阅读 22

收藏
2022-08-05

共1个答案

小编典典

编辑:

如果您不再定位,此答案可能不起作用es5,我将尝试使答案更完整。

原始答案

如果 CommonJS
没有安装(定义exports),你必须从你的tsconfig.json

 "module": "commonjs",

根据评论,仅此一项可能不适用于更高版本的tsc. 如果是这种情况,您可以安装一个模块加载器,如 CommonJS、SystemJS 或
RequireJS,然后指定它。

笔记:

查看您生成的main.js文件tsc。你会在最上面找到这个:

Object.defineProperty(exports, "__esModule", { value: true });

它是错误信息的根源,删除"module": "commonjs",后它会消失。

2022-08-05