はじめに 「enumはツリーシェイキングができないからas constを使え。」TypeScriptプロジェクトでよく聞くアドバイスだ。リントルールで強制するチームもあれば、コードレビューで指摘されることもある。 しかし実際のところ、enum数個がバンドルサイズに与える影響は微々たるものだ。パフォーマンスの話だけでは、なぜここまで推奨されているのか説明がつかない。namespaceやparameter propertiesのように、パフォーマンスとは無関係な構文も同じ文脈で非推奨とされているのはなぜだろうか? この記事は、その疑問から出発する。 TypeScript初期:JavaScriptにないものを独自に作っていた時代 TypeScriptが初めて登場した2012年、JavaScriptは今とはかなり違っていた。ES Modules(import/export)は標準化されておらず、ク

