Я недавно начал изучать TypeScript.Мне интересно, почему следующие конструкции работают без ошибок / предупреждений на этом языке:
function f(): boolean {
return false;
}
if ( f ) {
performSomeAction();
}
(и фактически будут выполнять условную часть кода), в то время как большинство программистов, вероятно, признают, что это опечатка (отсутствие вызова скобок функции) и переписать его следующим образом:
if( f() ){
performSomeAction();
}
Я имею в виду, есть ли какая-то реальная причина для того, чтобы объект функции оценки стал истинным?Или, скорее, это просто то, что делает код более уязвимым для таких ошибок?
[РЕШЕНИЕ] Чтобы избежать ошибок такого рода, можно изменить стиль кодирования.В условном выражении можно использовать "===" строгую проверку на равенство, которая в первом примере приведет к тому, что "Operator" === 'не может быть применен к типам' () => boolean 'и' boolean '"Ошибка компилятора TypeScript,