在Typescript中是否可以使用类型数组?

时间:2017-04-18 16:15:24

标签: javascript typescript

我在Javascript中使用以下模式:

stash@{0}

我正在将代码库迁移到Typescript,我找不到实现相同功能的方法。我已经定义了一个var things = { "blue": BlueThing, "heavy": HeavyThing, "imaginary": ImaginaryThing }; var my_thing = things[thing_type](); 接口和相关的类。有没有办法实现这种动态实例化而不需要使用大Thing语句?

1 个答案:

答案 0 :(得分:0)

好的,我把它排除了。

使用构造函数接口模式,我现在有了这个:

interface ThingConstructor {
  new (options: {[key: string]: string}) : Thing
}

interface Thing{
  /* * */
}

function thingFactory(type: ThingConstructor) : Function{
  return function(options) : Thing {
    return new type(options)
  }
}

--------

things: {[key: string]: Function}

--------

things["blue"] = thingFactory(BlueThing)

var my_thing = things[thing_type]({"stripes": "vertical"})