我最近开始学习TypeScript。我想知道为什么以下建筑工作没有错误/警告用这种语言:
className
(并且实际上将运行代码的条件部分),而大多数程序员可能会承认它是一个拼写错误(缺少函数的调用括号)并以这种方式重写它:
<Grid item ... >
我的意思是,评估函数对象的真实原因是什么?或者更确切地说,它只是使代码更容易受到此类错误的影响?
[解决方案]为了避免这种错误,可以改变编码风格。在条件语句中,可以使用“===”严格的egality检查,在第一个示例中将导致“Operator'==='不能应用于类型'()=&gt; boolean'和'boolean'”TypeScript编译器错误。
答案 0 :(得分:0)
评估函数对象是否存在真实的原因?
它允许您测试它们是否存在。
例如,JavaScript库可能具有插件,可选择允许实现功能。然后它可以测试一个插件是否实现了该函数,如果是,则使用它。
关于这是否是好的做法超出了这个答案的范围,但JavaScript允许它,所以TypeScript支持它。
有一种方法可以修改你的编码风格来检测这种类型的错误。
使用===
将执行&#34; strict&#34;等式检查,它还将测试被比较的两个值的类型。 if( f === true )
会导致类型不匹配错误&#34;运营商&#39; ===&#39;不能应用于类型&#39;()=&gt;布尔&#39;和&#39;布尔&#39;&#34;。