如您所知,JavaScript会针对分配返回undefined
,例如var a = 0;
。但是,TypeScript与此事实不一致,并且似乎返回指定的值(0
) - 但我无法在线找到任何有关此内容的信息。
例如,请参阅此代码段。
function f(): void {
let l: number = 1;
return (l = 2); // f() returns 2
}
alert(f());
我想了解这个决定背后的原因,并听取有关它的意见。
答案 0 :(得分:0)
您的代码段包含return (l = 2)
,分配,而非return (var l = 2)
(当然不是有效代码),前者将在JavaScript中返回2
,TypeScript,或者实际上是C或Java。
变量声明 var l = 2
是一个语句,但只有表达式具有值。