【TypeScript】型の絞り込みとは何ですか?
TypeScript

【TypeScript】型の絞り込みとは何ですか?

作成日:2021年07月25日
更新日:2021年08月05日

Yes、No で答えるコードがあったとします。

ts
let yesNo = ["yes", "no"];
function question(answer: number | boolean) {}

answerが『0』もしくは『ture』の場合『yes』を返し、『1』もしくは『false』の場合『no』を返すようにします。

『0』は number 型であり、『true』は boolean 型であるので、どちらの答えが返ってきてもいいように、条件分けして型を狭めます。

これを、型の絞り込みと言います。

方法は、ifの後にtypeofで条件分けします。

ts
let yesNo = ["yes", "no"];
function question(answer: number | boolean) {
if (typeof answer === "number") {
console.log(yesNo[answer]);
} else {
if (answer) {
console.log(yesNo[0]);
} else {
console.log(yesNo[1]);
}
}
}

question(0);にすると、

image2

『yes』が返ってきました。

question(false);にすると、

image3

『no』が返ってきました。

© 2024あずきぱんウェブスタジオ