如何在 Javascript 中使用已编译的 TypeScript class

How to use a compiled TypeScript class in Javascript

假设我有这个简单的 TypeScript class, Animal.ts:

export default class Animal {
  constructor(public name : string) { }
}

有了这个 tsconfig.json 文件:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "strict": true
  },
  "files": [
    "Animal"
  ]
}

如何在 javascript 文件中使用此 class 的编译版本(由 运行 tsc 编译),如下所示:

var Animal = require("./Animal");

var newAnimal = new Animal();

我应该在我的 tsconfig.json 文件中编辑一些东西吗?我得到的错误是:

ReferenceError: Animal is not defined

正如Shane van den Bogaard指出的那样,Animal.ts中的default关键字需要省略,并且:

const { Animal } = require('./Animal');
应使用

而不是

var Animal = require('./Animal');

这样我们就可以调用Animalclass并使用

初始化一个对象
const { Animal } = require('./Animal');
var newAnimal = new Animal("Clifford");