Я пытаюсь создать класс FooMap
, который расширяет класс TypeScript Map
по умолчанию, ограничивая тип принимаемых параметров.Причина, по которой я расширяю класс Map
, заключается в том, что я хочу написать методы для этого класса, к которым я буду обращаться из разных файлов.
Класс карты по умолчанию - Map<any,any>
, однако класс FooMap
будет аналогичен классу Map<number,Foo>
, использующему встроенный тип number
и определяемый пользователем тип Foo
.FooMap
будет принимать только эти пары ключ / значение.
Я пытался сделать это, передав карту в конструкторе, но я чувствую, что есть лучший способ сделать это.
// Say Foo class is defined as
export class Foo {
id: number;
name: string;
}
Теперь класс FooMap
будет иметь вид:
export class FooMap extends Map{
constructor(otherMap : Map<number,Foo>){
super(otherMap);
}
}
Но это не работает, поскольку super()
принимает только итерируемое, поэтому должен быть лучший способ расширить Map
класс.