如何使用Typescript键入嵌套的ES6映射树

时间:2018-10-18 08:06:33

标签: typescript

使用常规的JS对象,我可以像这样输入一棵树(以null为叶子):

interface Tree {
  [key: string]: Tree | null;
}

如何键入相似的结构,除了它使用ES6 Maps而不是对象(例如,当键可以是字符串以外的其他东西时,我将需要此结构)?换句话说,如何解决循环引用只能通过接口而不是别名并且您不能拥有

的问题
type Tree = Map<string, Tree | null>

1 个答案:

答案 0 :(得分:0)

除了创建别名外,您还可以创建一个将此类对象表示为

的类。
class Tree extends Map<string, Tree | null> {}

您如何看待这种方法?

希望这可以为您提供帮助。