Tipo de união inteiro (literal), com NaN como valor de retorno válido
Eu tenho uma função (comparação) com um tipo de retorno de união. Pode retornar-1
, 1
ou0
. No entanto, preciso de um caso especial ("resultado") para quando pelo menos um dos itens comparados não estiver definido. O compilador me permite adicionarnull
como um potencial valor de retorno, mas nãoNaN
(que, em alguns cenários, faria sentido, por exemplo, comparar números ou datas).
Isso compila
function myFunc(item1: MyType, item2: MyType): -1 | 0 | 1 | null {
...
}
mas para este, o compilador diz "Não é possível encontrar o nome NaN":
function myFunc(item1: MyType, item2: MyType): -1 | 0 | 1 | NaN {
...
}
Porque éNaN
não permitido? Existe uma maneira de usarNaN
?