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