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?

questionAnswers(2)

yourAnswerToTheQuestion