TypeScript で Option 型をできるだけわかりやすく
Option 型は、値があるかもしれないし、ないかもしれないことを表現する型です。
TypeScript でこの型を作成する場合は、オブジェクト型(タグ付き)のユニオン型を作ります。
以下が Option 型の例です。ここでいうタグとは hasSome のことです。
type Some<T> = {
hasSome: true
value: T
}
type None = {
hasSome: false
}
type Option<T> = Some<T> | None
この Option 型を受け取る関数の例は以下です。
もし、値があれば(valueがあれば)console.logに出力し、なければ何もやりません。
// これはユーザー定義の型ガードです
function isSome<T>(v: Option<T>): v is {hasSome: true, value: T} {
return v.hasSome === true
}
// これがOption型を受け取る関数
function getOption(v: Option<number>): void {
if(isSome(v)) console.log(v.value)
}
最近のコメント