Полагаю, что Type error
, упомянутый в вопросе, не является JS TypeError
, а является ошибкой типа TypeScript во время компиляции, поэтому что-то вроде:
Аргумент типа ' false 'не присваивается параметру типа' number | true '. (2345)
Вы можете изменить свое объявление на:
function isLoggedIn(param: number | true) {
if (param === 0) {
return false
} else {
return true
}
}
См. number | true
. Здесь true
предназначено для представления буквального «истинного» значения, а не просто логического значения, так что вы можете передать «истинное», но не «ложное».
Вам следует адаптировать if
условие внутри тоже, так как param никогда не будет false
, как показано в примере. Таким образом, вы можете использовать его как:
isLoggedIn(10); // ok
isLoggedIn(true); // ok
isLoggedIn(false); // TS Error
Вы можете проверить это здесь: Playground Link