結論
typeof
演算子を使って下記のように分岐を行うことができます。
if (typeof value === 'number') { return (value as number).toString() }
また、下記のような場合はundefined
は判定されますが、null
は許容されるので、null
をはじきたい場合はその下の例のように記述する必要があります。
if (typeof value !== 'undefined') { // valueがnullの可能性あり }
if (typeof data !== 'undefined' && data !== null) { // valueはundefinedではなく、nullでもない }
そもそもこのような場合は、typeof
使わないで下記のようにかけるそうですね。
参照: https://typescript-jp.gitbook.io/deep-dive/recap/null-undefined#dochiradearukawochekkusuru
if (arg != null) { // valueはundefinedではなく、nullでもない }
ちなみにそれぞれの型は、typeof
で下記のように出力されるらしい。
型 | 出力 |
---|---|
undefined | 'undefined' |
null | 'object' |
boolean | 'boolean' |
number | 'number' |
symbol | 'symbol' |
string | 'string' |
function | 'function' |
参照などが解決できない場合 | 'undefined' |
その他 | 'object' |
てな感じで本日も以上となります🍺
参考
- https://www.pg-fl.jp/program/ts/kw-ref/typeof_operator.htm
- https://typescript-jp.gitbook.io/deep-dive/type-system/typeguard
- https://typescript-jp.gitbook.io/deep-dive/recap/null-undefined#dochiradearukawochekkusuru