配列の型
要素の型に角カッコを付ける
配列の型は、中に入る要素の型のうしろに [] を付けて書きます。
const titles: string[] = ["プロフィールサイト", "自己紹介カード", "スキル一覧の表"];
const published: boolean[] = [true, false, true];
const viewCounts: number[] = [120, 8, 34];string[] は「文字列だけが入る配列」という意味です。配列そのものの型ではなく、中身の型を宣言している点が大事です。
違う型を混ぜるとその場で止まる
要素の型を決めておくと、あとから別の型を入れようとした行でエラーになります。
const titles: string[] = ["プロフィールサイト"];
titles.push(3);
// エラー Argument of type 'number' is not assignable to parameter of type 'string'.数と文字列が混ざった配列は、あとで合計を出したり並べ替えたりするときに必ず事故を起こします。入れる瞬間に止めてもらえるのがありがたいところです。
取り出した要素にも型が付く
配列に型を付けると、そこから取り出した 1 個にも型が付きます。
const titles: string[] = ["プロフィールサイト", "自己紹介カード"];
const first = titles[0];
first.toUpperCase(); // 文字列のメソッドが使える
first.toFixed(1); // エラー Property 'toFixed' does not exist on type 'string'.titles[0] が string だと分かっているので、エディタが文字列用のメソッドだけを候補に出してくれます。配列に型を付ける一番のごほうびは、この補完です。
Array という書き方もある
同じ意味を Array<string> と書くこともできます。
const titles: Array<string> = ["プロフィールサイト"];意味はまったく同じです。実務では短い string[] のほうがよく使われるので、このコースでも string[] で統一します。
手を動かす
演習では、作品タイトルの配列と公開フラグの配列から、公開中のタイトルだけを取り出す関数を書きます。引数に配列の型を付けるところと、取り出す処理の両方が課題です。戻り値も配列なので、そこにも型を付けてみてください。
要件
titlesはタイトルの配列なので文字列の配列の型を付けるpublishedは公開フラグの配列なので真偽値の配列の型を付ける- 公開中のタイトルだけを、もとの順番のまま配列にして返す
入出力例
publishedTitles(["プロフィールサイト","自己紹介カード","スキル一覧の表"], [true,false,true]) → ["プロフィールサイト","スキル一覧の表"]
publishedTitles(["プロフィールサイト","自己紹介カード"], [true,true]) → ["プロフィールサイト","自己紹介カード"]
publishedTitles(["下書きメモ","試作ページ"], [false,false]) → []
publishedTitles([], []) → []
publishedTitles(["試作ページ","プロフィールサイト"], [false,true]) → ["プロフィールサイト"]ヒント
編集 LuaGate編集部