Javascript 扩展TypeScript映射以限制数据类型
我试图创建一个类Javascript 扩展TypeScript映射以限制数据类型,javascript,typescript,oop,inheritance,Javascript,Typescript,Oop,Inheritance,我试图创建一个类FooMap,通过限制它接受的参数类型来扩展默认的TypeScriptMap类。我扩展Map类的原因是我想为该类编写方法,我将从不同的文件访问该类 默认映射类是Map,但是FooMap类类似于使用内置number类型和用户定义的Foo类型的Map。FooMap只接受这些键/值对 我试图通过在构造函数中传递一个映射来实现这一点,但我觉得有更好的方法来实现这一点 // Say Foo class is defined as export class Foo { id:
FooMap
,通过限制它接受的参数类型来扩展默认的TypeScriptMap
类。我扩展Map
类的原因是我想为该类编写方法,我将从不同的文件访问该类
默认映射类是Map
,但是FooMap
类类似于使用内置number
类型和用户定义的Foo
类型的Map
。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);
}
}
导出类FooMap扩展映射{
构造函数(其他映射:映射){
超级(其他地图);
}
}
但是这不起作用,因为
super()
只接受一个iterable,所以必须有更好的方法来扩展Map
类。您还需要使类扩展一个完全实例化的泛型Map
:
export class FooMap extends Map<number, Foo> {
导出类FooMap扩展映射{
但要使其发挥作用,您应该以es6为目标(请参阅)