1. ホーム
  2. typescript

[解決済み] typescript の module.exports

2023-02-04 14:56:19

質問

誰かmodule.exportsのやり方を知っていますか?

私はいくつかの異なる方法を試してみましたが、結局

export class Greeter {}

となり,コンパイルされると

exports.Greeter = Greeter;

しかし、私が本当に欲しいのはこれです。

exports = Greeter;

こんな風に使えるように

import { Greeter } from "greeter";

const greeter = new Greeter();

でなく

import { Greeter } from "greeter";

const greeter = new Greeter.Greeter();

これはTypescriptで可能なのでしょうか?

どのように解決するのですか?

このようにTypeScriptで一つのクラスをエクスポートすることができます。

class Person {

  private firstName: string;
  private lastName: string;

  constructor(firstName: string, lastName: string) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  public getFullName() {
    return `${this.firstName} ${this.lastName}`;
  }
}

export = Person;

そして、その使い方はこうです。

var Person = require('./dist/commonjs/Person.js');

var homer = new Person('Homer', 'Simpson');
var name = homer.getFullName();

console.log(name); // Homer Simpson

完全なものにするために、以下は私の tsconfig.json (です(TypeScript v2.0.3を使っています)。

{
  "compilerOptions": {
    "module": "commonjs",
    "moduleResolution": "node",
    "outDir": "dist/commonjs",
    "rootDir": "src/ts",
    "target": "es5"
  },
  "exclude": [
    "dist",
    "node_modules"
  ]
}