こんにちは。フロントエンドの現場で日々コードと格闘しているチーフアーキテクトです。
TypeScriptを学び始めると、必ず一度は「あれ、これどっちを使えばいいの?」と迷うポイントがありますよね。その代表格が、配列の型定義である `T[]` と `Array
「機能は同じだって聞くけど、結局どっちが正解なんだろう…」と悩むのは、あなたが真剣にコードと向き合っている証拠です。大丈夫、今日はそのモヤモヤをスッキリ解消して、自信を持って使い分けられるようになりましょう。
—
配列の型定義、二つの顔
TypeScriptで「これは数字の入った配列ですよ」と伝える方法は、主に以下の2つあります。
1. `number[]` (角括弧記法)
2. `Array
どちらも同じ「数字が入った箱が並んでいる」という状態を表します。例えるなら、「100均で買ったクリアケース」と「無印良品で買った透明ケース」のようなものです。どちらも中身(数字)が見えて、整頓できることに変わりはありません。
1. `T[]` 記法:直感的で軽やか
`number[]` のように書くこのスタイルは、非常にシンプルです。「数字の配列だよね」と一目でわかります。
// 数字だけが入った「お買い物リスト」をイメージしてください
const prices: number[] = [100, 200, 300];
// 文字列の配列もこんなにスッキリ
const fruits: string[] = [“りんご”, “バナナ”, “みかん”];
現場のエンジニアの多くは、基本的にはこの `T[]` を好んで使います。 なぜなら、キーボードを打つ回数が少なくて済むからです。コードは毎日書くもの。短い記法は、それだけでストレスを減らしてくれます。
2. `Array` 記法:明確な「設計図」感
一方で `Array
// さっきと同じ内容ですが、少しだけ「設計図」っぽく見えませんか?
const prices: Array
これは「配列というシステムを使って、数字を管理しますよ」という意思表示です。
—
現場ではどう使い分けるべき?
結論から言うと、「チームのルール(コーディング規約)に従う」のが一番ですが、あえて個人の哲学を語るなら、私はこう使い分けています。
基本は `T[]` を推す理由
9割のケースでは、`number[]` のような記法で十分です。可読性が高く、タイピングも速い。コードの海を泳ぐとき、ノイズが少ないコードはそれだけで正義です。
`Array` が輝く例外的な場面
逆に、`Array
それは、「読み取り専用にしたいとき」です。
実は、配列を「書き換え不可(イミュータブル)」にしたいとき、以下のように書くことができます。
// 読み取り専用の配列!中身を後から変えさせないためのガードです
const prices: ReadonlyArray
// これをするとエラーになります。「後から書き換えるな!」とTypeScriptが守ってくれるんです
// prices.push(400);
このように、`ReadonlyArray
—
最後に:あまり難しく考えすぎないで
初学者のうちは、「どちらを使ってもプログラムは動く」という事実をまずは楽しんでください。
- まずは `T[]` を使ってみる
- 「あ、今はちょっと複雑な型定義が必要だな」と感じたら `Array
` を検討する
このくらいの距離感で付き合っていくのが、TypeScriptと長く仲良くするコツです。どちらの書き方を選んだとしても、あなたのコードには何の問題もありません。
もし途中で迷ったら、いつでもエディタを開いて、両方試してみてください。TypeScriptは、あなたがどちらの書き方を選んでも、ちゃんと文脈を読み取ってサポートしてくれますから。
それでは、良いコーディングライフを!また何かあればいつでも聞いてくださいね。

コメント