При получении и установке значений карты карта должна каким-то образом знать, равны ли ключи другому, уже заданному ключу.
Как реализовать равенство для сложных типов данных (настраиваемые классы) в Typescript? В Java я бы переопределил метод equals, есть ли эквивалент в машинописном тексте?
В моем случае у меня есть следующий класс:
export class Path {
constructor(
private readonly scope: string[],
private readonly object: string[],
private readonly value: string
) { }
getScope(): string[] {
return this.scope;
}
getObject(): string[] {
return this.object;
}
getValue(): string {
return this.value;
}
// @override equals(): boolean -- ?
}
Я хочу использовать экземпляры этого класса как ключи на карте:
const map = new Map<Path, string>();
map.set(new Path(['hello'], ['world'], 'asdf'), 'hwa');
map.set(new Path(['see', 'you'], ['world'], 'asdf'), 'swa');
map.get(new Path(['hello'], ['world'], 'asdf')); // 'hwa'
map.get(new Path(['see', 'you'], ['world'], 'asdf')); // 'swa'