ts如何在泛型中使用元祖?

新手上路,请多包涵

代码如下:

class Person {
    name: string
    age: number
    constructor(name: string, age: number) {
        this.name = name
        this.age = age
    }
}
function createInstance<T, U>(ctor: new (...params) => T, ...args: U): T { // error: rest 参数必须是数组类型
    return new ctor(...args) // error: 类型“U”必须具有返回迭代器的 "[Symbol.iterator]()" 方法
}
const person = createInstance<Person, [string, number]>(Person, 'person', 25)
console.log(person.name)

我想使用泛型的方法对rest参数...args进行检验。在泛型使用元祖后,ts提示错误:rest 参数必须是数组类型。

阅读 1.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进