Вы можете использовать охранник типа , который будет гарантировать компилятору, что вы обрабатываете не null
, а число. Более того, это сделает код более правильным , поскольку с value: any
это означает, что вы можете получить логическое значение или строку, переданную в:
public print(value: any): void {
if (typeof value === "number") {
//value is definitely a number and not null
if (value >= 0) {
console.log('Greater than zero')
}
}
}
Playground Link
Теперь код специально проверяет, действительно ли вы получили число, а затем проверяет, больше ли оно или равно нулю. Это означает, что null
или нечисловое значение не будут обрабатываться.
Условие защиты типа может быть объединено с другим для краткости:
public print(value: any): void {
if (typeof value === "number" && value >= 0) {
console.log('Greater than zero')
}
}
Playground Ссылка
Или извлечена сама по себе, чтобы уменьшить вложенность:
public print(value: any): void {
if (typeof value !== "number")
return;
//value is definitely a number and not null
if (value >= 0) {
console.log('Greater than zero')
}
}
Ссылка на игровую площадку