【入門編】 配列型の定義方法(T[]とArray) – TypeScript実践ガイド

こんにちは。フロントエンドの現場で日々コードと格闘しているチーフアーキテクトです。

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 = [100, 200, 300];

これは「配列というシステムを使って、数字を管理しますよ」という意思表示です。

—

現場ではどう使い分けるべき?

結論から言うと、「チームのルール(コーディング規約)に従う」のが一番ですが、あえて個人の哲学を語るなら、私はこう使い分けています。

基本は `T[]` を推す理由

9割のケースでは、`number[]` のような記法で十分です。可読性が高く、タイピングも速い。コードの海を泳ぐとき、ノイズが少ないコードはそれだけで正義です。

`Array` が輝く例外的な場面

逆に、`Array` と書くほうが「おっ、わかってるね」と言える場面もあります。

それは、「読み取り専用にしたいとき」です。
実は、配列を「書き換え不可(イミュータブル)」にしたいとき、以下のように書くことができます。

// 読み取り専用の配列!中身を後から変えさせないためのガードです
const prices: ReadonlyArray = [100, 200, 300];

// これをするとエラーになります。「後から書き換えるな!」とTypeScriptが守ってくれるんです
// prices.push(400);

このように、`ReadonlyArray` という型を使うときは、必然的に `Array` の形を借りる必要があります。こうした少し高度な制御をするときには、`Array` 記法の親しみ深さが活きてくるんです。

—

最後に:あまり難しく考えすぎないで

初学者のうちは、「どちらを使ってもプログラムは動く」という事実をまずは楽しんでください。

  • まずは `T[]` を使ってみる
  • 「あ、今はちょっと複雑な型定義が必要だな」と感じたら `Array` を検討する

このくらいの距離感で付き合っていくのが、TypeScriptと長く仲良くするコツです。どちらの書き方を選んだとしても、あなたのコードには何の問題もありません。

もし途中で迷ったら、いつでもエディタを開いて、両方試してみてください。TypeScriptは、あなたがどちらの書き方を選んでも、ちゃんと文脈を読み取ってサポートしてくれますから。

それでは、良いコーディングライフを!また何かあればいつでも聞いてくださいね。

コメント

タイトルとURLをコピーしました