共用体戻り型の(比較)関数があります。 -1
,1
または0
を返すことができます。しかし、比較される項目の少なくとも1つが定義されていない場合には、特別なケース(結果)が必要です。コンパイラはnull
を潜在的な戻り値として追加することができますが、NaN
(いくつかのシナリオでは、数値や日付の比較など)を返すことはできません。有効な戻り値としてNaNを持つ整数(リテラル)共用体型
これは
function myFunc(item1: MyType, item2: MyType): -1 | 0 | 1 | null {
...
}
をコンパイルしますが、この1のために、コンパイラは、それが "名前はNaNを見つけることができません" と言う:
function myFunc(item1: MyType, item2: MyType): -1 | 0 | 1 | NaN {
...
}
はなぜNaN
許可されていませんか? NaN
を使用する方法はありますか?
NaNは浮動小数点型ではありません。それはおそらくTSがそれを好まない理由です。 – mfeineis
@mfeineは確かですが、この 'function bla():1 | "3" | null {...} 'もコンパイルされます。 –
JavaScriptはintとfloatの違いはありません。どちらも同じ型の 'Number'です。私はNaNも 'Number 'だと思います。 – Misaz