Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
Javascript 扩展TypeScript映射以限制数据类型_Javascript_Typescript_Oop_Inheritance - Fatal编程技术网

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
,通过限制它接受的参数类型来扩展默认的TypeScript
Map
类。我扩展
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为目标(请参阅)