gpt4 book ai didi

javascript - 扩展 TypeScript Map 以限制数据类型

转载 作者:搜寻专家 更新时间:2023-10-30 21:32:58 25 4
gpt4 key购买 nike

我正在尝试创建一个类 FooMap扩展默认的 TypeScript Map通过限制它接受的参数类型来分类。我扩展 Map 的原因class 是因为我想为我将从不同文件访问的那个类编写方法。

默认的 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类。

最佳答案

您还需要让您的类扩展一个完全实例化的通用 Map:

export class FooMap extends Map<number, Foo> {

但要让它工作,你应该以 es6 为目标(参见 https://github.com/Microsoft/TypeScript/issues/10853 )

关于javascript - 扩展 TypeScript Map 以限制数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56658249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com