javascript - 如何指定Map javascript的类型?

标签 javascript typescript

我有两个Map():

private dictionaryMap = new Map();
private words = new Map<string, IDictItem>();

填充words后,我需要将此 map 添加到dictionaryMap中。

那么,如何为dictionaryMap指定类型?

我尝试过:

private dictionaryMap = new Map<string, Map<string, IDictItem>()>();

但似乎这是错误的。

最佳答案

您需要设置这些值或使用!来声明它们可以在开始时保持未初始化状态。

interface IDictItem {
  definition: string;
}

class Foo {
  private words = new Map<string, IDictItem>();
  private dictionaryMap: Map<string, Map<string, IDictItem>>;

  constructor(){
    this.words.set("hello", { definition: "word for greeting" });
    this.dictionaryMap = new Map([["key", this.words]])
  }
}

关于你的SubjectBehaviour包装。我缺乏一些关于您的需求的背景信息,但如果您需要的是订阅字典更改。那么这样的事情应该有帮助:

interface IDictItem {
  definition: string;
}

class Foo {
  private words = new Map<string, IDictItem>([["hello", { definition: "word for greeting" }]]);
  private dictionaryMap: Map<string, Map<string, IDictItem>>;
  // I was using jsfiddle, so you need to do an actual:
  // import { BehaviorSubject } from "rxjs";
  private dictionaryMapSubject = new rxjs.BehaviorSubject();
  private dictionaryKey = "key"


  constructor(){
    this.dictionaryMap = new Map([[this.dictionaryKey, this.words]]);
    this.dictionaryMapSubject.subscribe(console.log);
  }

  public publishDic(): void {
      const dic = this.dictionaryMap.get(this.dictionaryKey);
      this.dictionaryMapSubject.next(dic);
  }
}

const foo = new Foo();

foo.publishDic();

关于javascript - 如何指定Map javascript的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075292/

相关文章:

javascript - Vue.js:如何修复 'b-modal' 未在自定义组件中显示

javascript - ExtJS 4.2.1 用于加载指示和模态窗口的不同 CSS 掩码

Angular 2 - 如何访问回调中的变量并将其显示在 View 上

javascript - 如何在选中(始终在新选项卡中打开弹出窗口)时强制弹出窗口在新窗口中打开?

javascript - jsf 的 xthml 文件中的 javascript 中的不等号 ("<"引发错误(在 netbeans 中)

typescript - TSLint 摆脱缺失的空白

javascript - 如何在 Jest 中模拟 const 方法?

javascript - 努力让 DayJs 可用于 cypress 中的所有测试

javascript - 类型 'styleName' 上不存在属性 'HTMLProps<HTMLDivElement>'

javascript - 将表单元素转换为 json 并将它们 POST 到服务器,其中包括其中一些作为一组参数