我使用的供应商将其软件与AssemblyScript打包在一起。它们提供了一些基础结构,我在此基础上构建。
偶然地,我在对十六进制字符串执行相等检查的函数中将双等号(“ ==”)更改为三等号(“ ===”)。我花了几个小时来确保检查的值确实相等并且具有相同的大小写敏感性,但是除了返回“ ==“。
,if语句无法进入我期望它进入的分支。所以我最终来到这里,寻求帮助。 “ ===”与AssemblyScript中的“ ==”有何不同?是语言本身还是供应商的解析器有点古怪?
是。在AssemblyScript中,三元组等于(“ ===”),比较原始引用并跳过重载运算符(“ ==”)。参见docs。
有建议避免这种非标准的TypeScript行为。您可以检查并投票this issue