📜

minify の効果を最大限に引き出す TypeScript コードを書く

に公開2

Discussion

レオレオ

クラスのプロパティ名やメソッド名は、minifyしても名前が変更されず、短くなりません。

ご参考情報ですが、少なくとも esbuild の場合は TypeScript の private 修飾子の代わりにプライベートプロパティを使用すると名前は短く変更されます。プライベートプロパティはクラスやインスタンス外部から直接参照する手段が無いので名前を変えても安全であるためだと思います。チーム開発において多少現実的な方法かもしれません。

export class Foo {
  public foo() {
    this.bar();
    this.#baz();
  }
  // bar は minify されない
  private bar() {}
  // #baz は minify される
  #baz() {}
}

esbuild デモ

@jsakamoto@jsakamoto

レオさん
有益な情報ありがとうございます! そうですね、プライベートプロパティはすっかり見落としていました。TypeScript のクラスメンバーのアクセス修飾子は、JavaScript へのトランスパイル時に消えてしまいますけれども、JavaScript レベルで提供されているプライベートプロパティの仕組みであれば、たしかに minify されますね。より現実的なアプローチだと思います。コメントありがとうございます!