今回はString, Number, Boolean型がTypeScriptにて非推奨となっていたので、その件に関して紹介します。
非推奨となった理由
オブジェクトラッパー型(String, Number, Boolean)は、プリミティブ型(string, number, boolean)とは異なる挙動をします。この違いが予期せぬバグを引き起こす可能性があるため、非推奨となりました。
問題のある書き方
// 非推奨の書き方
let name: String = "TypeScript";
let age: Number = 12;
let isActive: Boolean = true;
// これらは異なる型として扱われる
const str: string = "hello";
const objStr: String = new String("hello");
console.log(typeof str); // "string"
console.log(typeof objStr); // "object"推奨される書き方
// 推奨される書き方
let name: string = "TypeScript";
let age: number = 12;
let isActive: boolean = true;よくある間違い
1. メソッドチェーンでの型指定
// 間違い
function processString(str: String) {
return str.toLowerCase();
}
// 正しい
function processString(str: string) {
return str.toLowerCase();
}2. ジェネリクスでの使用
// 間違い
type Container<T extends Number> = {
value: T;
}
// 正しい
type Container<T extends number> = {
value: T;
}オブジェクトラッパー型が必要な場合
極めて稀なケースですが、実際のJavaScriptオブジェクトインスタンスが必要な場合は使用できます:
// 特殊なケース
const numberObject: Number = new Number(123);
console.log(Object.getPrototypeOf(numberObject));ESLintでの制限方法
{
"rules": {
"@typescript-eslint/ban-types": ["error", {
"types": {
"String": {
"message": "Use string instead",
"fixWith": "string"
},
"Number": {
"message": "Use number instead",
"fixWith": "number"
},
"Boolean": {
"message": "Use boolean instead",
"fixWith": "boolean"
}
}
}]
}
}まとめ
String, Number, Boolean型の代わりにプリミティブ型のstring, number, booleanを使用することで、より安全でパフォーマンスの良いコードが書けます。新規プロジェクトではプリミティブ型を使用し、既存のコードは徐々に移行することをおすすめします。
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のコンストラクタ引数public/privateの注意点
- TypeScriptでvarを避ける理由|let・constの使い分け
- TypeScriptでFunction型を避ける理由|安全な関数型の書き方
- TypeScriptでanyを避ける理由|unknownや型定義への置き換え
- TypeScriptでenumを避ける理由|union型・as constの使い方
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。


コメント