如何实现类型从类构造函数的参数派生的项目

时间:2019-03-26 07:32:52

标签: typescript

如何实现类型从类构造函数的参数派生的项目?打字稿支持吗?如果没有,为什么?

class Toolbar { 
  constructor(adit: string, options: { container: stirng }) { }
}

type ModudleSetting<T extends object = {}> = [
  { new(adit: string, options: T): any },
  T,
]

function registerMoudle(moduleSetting: ModudleSetting) { 
}

registerMoudle([Toolbar, { a: 'asdasd' }])

我希望{ a: 'asdasd' }的类型为{ container: stirng },但不是。

1 个答案:

答案 0 :(得分:0)

您只需要使您的registerModule通用:

function registerMoudle<T extends object = {}>(moduleSetting: ModudleSetting<T>) {}

play