我使用的一个供应商用AssemblyScript打包了他们的软件。他们提供了一些基础设施,我在此基础上构建。
在对十六进制字符串执行相等检查的函数中,我意外地将双等号("==")更改为三等号("===")。我花了几个小时来确保检查的值确实相等并且具有相同的大小写敏感度,但是除了返回到"==“之外,没有任何东西可以使if语句进入我期望它进入的分支。
所以我最终来到这里,寻求帮助。"===“和AssemblyScript中的"==”有什么不同?是语言本身的某种怪癖还是供应商的解析器?
发布于 2019-11-24 10:07:42
是。在AssemblyScript三重等于("===")中,比较原始引用并跳过重载运算符("==")。参见docs。
有人提议避免这种TypeScript行为非标准。你可以检查和提升this issue
https://stackoverflow.com/questions/59013601
复制相似问题