Есть ли аналог Comparable в TypeScript

Нам задали написать двоичное дерево поиска на TypeScript. С этим языком я не знаком и не могу найти информацию, есть ли в нем аналог интерфейсов Comparable или Comparator, как в java? Потому что дерево должно принимать параметризованные данные, соответственно оно должно сравнивать ключи по значению, которые будут сравниваться различно в зависимости от типа данных, в Java я бы просто поставил ограничение, что дерево должно работать только с реализациями интерфейса Comparable, метод compareTo() бы переопределялся для каждого используемого класса, а тут что делать?

Ну, если на java, то вот, я могу создать любой класс, например "работник" Переопределить для него CompareTo(), что позволит мне использовать его, например, в TreeSet или TreeMap

public class Employee implements Comparable<Employee> {
    String name;
    int age;

    public Employee(String name) {
        this.name = name;
    }

    public Employee(String name, int age) {
        this.name = name;
        this.age = age;
    }

@Override
    public int compareTo(Employee e) {
        return this.age - e.age;
    }
}

...

public static void main(String[] args) {
    TreeSet<Employee> treeSet = new TreeSet<>();
    treeSet.add(new Employee("Robert", 30));
    treeSet.add(new Employee("John", 20));
    treeSet.add(new Employee("Maria", 25));
}

После чего все элементы будет сразу отсортированы в красно-черном дереве. В самом классе TreeSet это реализовано через проверку на наличие компаратора либо реализации нашим классом интерфейса Comparable. Ну, а в данном случае мне самому нужно написать дерево, только на TypeScript.


Ответы (0 шт):