我试图创建一个类AttributeError: module 'os' has no attribute 'makedir'
,以通过限制默认TypeScript FooMap
类接受的参数类型来扩展它。我扩展Map
类的原因是因为我想为该类编写将要从不同文件访问的方法。
默认的Map类为Map
,但是Map<any,any>
类类似于使用内置FooMap
类型和用户定义的{{1 }}类型。 Map<number,Foo>
仅接受这些键/值对。
我试图通过在构造函数中传递一个映射来实现这一点,但是我觉得有更好的方法来实现这一点。
number
现在,Foo
类为:
FooMap
但是这不起作用,因为// Say Foo class is defined as
export class Foo {
id: number;
name: string;
}
仅接受一个可迭代对象,因此必须有一种更好的方法来扩展FooMap
类。
答案 0 :(得分:2)
您还需要使您的类扩展完全实例化的泛型Map
:
export class FooMap extends Map<number, Foo> {
但是要使其发挥作用,您应该定位es6
(请参见https://github.com/Microsoft/TypeScript/issues/10853)