typescript - 在 TypeScript 中,当我使用 myMap 扩展 Map 时,它显示 Expected 0 argument

标签 typescript

js的Map不能接受参数吗?有高手可以教教我吗?

class myMap extends Map {
  constructor(props: any) {
    super(props);
  }
}

enter image description here

最佳答案

Map的类型定义是...

interface MapConstructor {
    new(): Map<any, any>;
    new<K, V>(entries?: readonly (readonly [K, V])[] | null): Map<K, V>;
    readonly prototype: Map<any, any>;
}

它提供了 2 个构造函数...

  1. 非通用 new没有任何参数
  2. 通用 new<K, V>它需要 1 个参数

两者都返回 Map<K, V> 的接口(interface)。现在当我们extending myMap与非通用Map ,可用的构造函数是无参数的。为了能够传递参数,我们可以编写 myMap 的定义因此,除非我们有其他理由不这样做......

class myMap extends Map<string, string> {
  constructor(props: any) {
    super(props)
  }
}

哪里Map<string, string>只是为了说明目的的示例。我们必须决定 Map<K, V> 的实际类型来自用例的上下文。

关于typescript - 在 TypeScript 中,当我使用 myMap 扩展 Map 时,它显示 Expected 0 argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70677360/

相关文章:

node.js - 语法错误 : Cannot find name 'setImmediate'

javascript - typescript 代码中是否需要构造函数?

node.js - 如何发出将数组发送到服务器的请求?

jquery - 在 typescript 中调用函数在alertify.js 中不起作用

javascript - 如何在 typescript 中将这些对象转换为数组

typescript - 扩展联盟类型

typescript :错误 TS2314:通用类型 'Array<T>' 需要 1 个类型参数

angular - 无法读取 Angular2 Typescript 中未定义的属性 'value'

javascript - 从函数调用 LazyQuery Hook

javascript - 在 Javascript 中创建与时区无关的日期?