Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Typescript映射中将类实例用作键_Typescript_Dictionary - Fatal编程技术网

在Typescript映射中将类实例用作键

在Typescript映射中将类实例用作键,typescript,dictionary,Typescript,Dictionary,在获取和设置映射值时,映射必须知道这些键是否等于另一个已设置的键 如何在Typescript中实现复杂数据类型(自定义类)的相等性?在Java中,我会重写equals方法,typescript中是否有等效的方法 就我而言,我有以下课程: 导出类路径{ 建造师( 私有只读作用域:字符串[], 私有只读对象:字符串[], 私有只读值:字符串 ) { } getScope():字符串[]{ 返回此.scope; } getObject():字符串[]{ 返回此.object; } getValue()

在获取和设置映射值时,映射必须知道这些键是否等于另一个已设置的键

如何在Typescript中实现复杂数据类型(自定义类)的相等性?在Java中,我会重写equals方法,typescript中是否有等效的方法

就我而言,我有以下课程:

导出类路径{
建造师(
私有只读作用域:字符串[],
私有只读对象:字符串[],
私有只读值:字符串
) { }
getScope():字符串[]{
返回此.scope;
}
getObject():字符串[]{
返回此.object;
}
getValue():字符串{
返回此.value;
}
//@override equals():布尔--?
}
我想使用此类的实例作为映射中的键,如下所示:

const map=newmap();
set(新路径(['hello']、['world']、'asdf')、'hwa');
set(新路径(['see'、'you']、['world'、'asdf')、'swa');
get(新路径(['hello'],['world'],'asdf');//'华
get(新路径(['see','you',['world','asdf');//'swa'
如何在Typescript中实现复杂数据类型(自定义类)的相等性

你不能。是TypeScript从JavaScript获得的东西。JavaScript规范说
Map
使用。对于对象实例,这就是
=
。也就是说,只有相同的实例才等于自身,而不是等效的实例。它不像Java的集合那样遵从对象方法

没有内置的类似于映射的结构允许您确定键的相等性。您可以构建一个,但默认情况下没有