プリミティブ型
3 つの基本の型
TypeScript でいちばんよく使う型は string、number、boolean の 3 つです。これらをプリミティブ型と呼びます。プリミティブとは、それ以上細かく分解できない一番小さな値のことです。
const name: string = "ゆめさく";
const workCount: number = 3;
const isPublished: boolean = true;string は文字列、number は数値、boolean は true と false の 2 つだけを取る型です。プロフィールのデータは、たいていこの 3 つで書けます。
number は整数も小数も同じ
JavaScript に整数型と小数型の区別が無いのと同じで、TypeScript の number も両方を受け持ちます。
const workCount: number = 3;
const averageScore: number = 4.5;「3 は整数だから別の型があるのでは」と迷う必要はありません。数なら number です。
型を取り違えると計算の意味が変わる
数を文字列で持ってしまうと、実行は通るのに答えだけがおかしくなります。プロフィールの作品数でよく起きる事故です。
const a: number = 3;
console.log(a + 1); // 4
const b: string = "3";
console.log(b + 1); // "31"+ は数どうしなら足し算、文字列が混ざると連結になります。"31" になっても JavaScript は何も言いません。どちらのつもりで書いたのかを型で宣言しておくと、噛み合わない場所でエラーとして止まります。
boolean は比較の結果にも付く
boolean は自分で true と書いたときだけでなく、比較した結果にも付きます。
const isPopular: boolean = workCount > 2;
const isEmpty: boolean = workCount === 0;そのため boolean の変数名は is や has で始める習慣があります。読んだ人が中身を見なくても真偽値だと分かるからです。
手を動かす
演習では、引数に型注釈が 3 つとも書かれた関数を渡します。ただし 2 つが間違った型になっていて、関数の中の処理と噛み合わずエラーが出ます。エラーメッセージを読んで、正しいプリミティブ型に直してください。処理の中身を見れば、どの引数が数でどの引数が真偽値なのかが分かります。
要件
nameはそのまま文字列の型でよいworkCountとisPublicを正しいプリミティブ型に直す- 処理の中身と戻り値の形は変えない
入出力例
profileSummary("ゆめさく", 3, true) → "ゆめさく / 公開作品3件 / 公開中"
profileSummary("たなか", 0, true) → "たなか / 作品はまだありません / 公開中"
profileSummary("さとう", 12, false) → "さとう / 公開作品12件 / 非公開"
profileSummary("すずき", 1, false) → "すずき / 公開作品1件 / 非公開"ヒント
編集 LuaGate編集部