TypeScriptでクラスを書くとき、コンストラクタの引数でpublicやprivateを使う方法がありましたよね。でも最近、この書き方が非推奨になっているって知っていましたか?
非推奨となった背景
TypeScriptチームが2023年にこの機能を非推奨とした理由には、いくつかの問題点がありました:
- コードの可読性が低下する
- JavaScriptの仕様から離れすぎている
- バンドラーやミニファイアでの最適化が難しい
- デコレータとの相性が良くない
実際にTypeScriptチームからは「シンプルな方法を推奨したい」という意見が出ています。
推奨される新しい書き方
これまでの書き方:
class User {
constructor(public name: string, private age: number) {}
}推奨される新しい書き方:
class User {
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
public name: string;
private age: number;
}この新しい書き方のほうが、プロパティの定義が明確になっていますね。
移行のポイントとベストプラクティス
既存のコードを移行する際のポイントをまとめました:
- プロパティの型定義を明示的に書く
- アクセス修飾子は必要な場合のみ使用する
- コンストラクタ引数は型のみを指定する
- クラスのプロパティは上部でまとめて定義する
移行は急いで行う必要はありません。既存のコードは動作し続けますが、新しいコードを書く際は推奨される方法を使うのがベストですね。
まとめ
コンストラクタ引数でのアクセス修飾子は非推奨となりましたが、これはTypeScriptをより明確で保守しやすいものにするための変更です。新しい書き方に慣れるまで少し時間がかかるかもしれませんが、コードの品質向上につながる良い変更だと考えられています。
TypeScriptの保守しやすい設計を学んだあとにAI活用や副業学習まで広げる場合は、有料講座を選ぶ前に、自分にスクールが必要な段階かも確認しておくと判断しやすくなります。AIスクールをおすすめしない人では、目的・作業時間・成果物の準備が整っているかを整理しています。
TypeScriptの保守しやすい設計やコンストラクタ引数の書き方を学んだあと、AI活用や副業学習で有料支援を検討する場合は、AIスクールの無料相談は何社受けるべき?も確認してください。1社だけで決めず、質問対応、作れる成果物、学習の進め方、料金総額、返金条件を同じ質問で比べると、どこまで支援を受けるべきか判断しやすくなります。
開発・プログラミング記事をまとめて読む
プログラミング・開発記事まとめ
Nexforge内の学習順、環境構築、TypeScript、Rust/Gleam、Linuxトラブル対応の記事を目的別にまとめています。
TypeScriptの避けたい書き方関連記事
TypeScriptの古い書き方や避けたい型をまとめて確認したい場合は、次の記事も参考になります。
- TypeScriptで避けたい書き方まとめ|any・enum・namespaceなど
- TypeScriptでexport defaultを避ける理由|named exportの使い方
- TypeScriptでnamespaceを避ける理由|ES Modulesへの移行
- TypeScriptでthis.constructorを使う時の注意点と代替案
- TypeScriptでvarを避ける理由|let・constの使い分け
- TypeScriptでFunction型を避ける理由|安全な関数型の書き方
- TypeScriptでString・Number・Boolean型を避ける理由
- TypeScriptでanyを避ける理由|unknownや型定義への置き換え
- TypeScriptでenumを避ける理由|union型・as constの使い方
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。


コメント