在Python
你可以做这样的事情
>>> a = ('a', 'b')
>>> b = ('a', 'b')
>>> a == b
True
但是在Typescript
type test = [string, string];
var data1: test = ['a', 'b'];
var data2: test = ['a', 'b'];
console.log(data1 == data2); // return false
console.log(data1 === data2); // return false
相同类型的两个数据的相等检查是使用引用,我知道我可以循环遍历数组但是有语法糖来检查类似于Python
tuple
的数据相等性吗?
答案 0 :(得分:1)
有没有办法在Typescript中自动检查数据类型的数据相等性?
没有。情况与JavaScript中的情况相同,即您需要库或自定义代码。
答案 1 :(得分:1)
在实践中,对此的正确答案几乎总是使用Lodash的_.isEqual
function:
import _ = require("lodash");
type test = [string, string];
var data1: test = ['a', 'b'];
var data2: test = ['a', 'b'];
console.log(_.isEqual(data1, data2));
这将为您进行深度平等比较,类似于您期望从其他语言中获得的比较。
答案 2 :(得分:0)
TypeScript没有提供现成的这个功能,这种情况完全类似于JavaScript中遇到的情况:你需要递归扫描对象(我相信Python正在做类似的事情)。 / p>
为了实现测试目的的快速临时比较,您可以将值转换为JSON字符串,然后比较这些字符串:
JSON.stringify(data1) == JSON.stringify(data2); // true