gpt4 book ai didi

javascript - TypeScript 泛型创建实例

转载 作者:行者123 更新时间:2023-11-30 19:03:14 25 4
gpt4 key购买 nike

我正在尝试创建一个工厂来使用泛型实例化我的类。 checkout TypeScript docs这一切都很完美。简而言之,这很好用:

class Person {
firstName = 'John';
lastName = 'Doe';
}

class Factory {
create<T>(type: (new () => T)): T {
return new type();
}
}

let factory = new Factory();
let person = factory.create(Person);

console.log(JSON.stringify(person));

现在在目录中定义类Person:

export class Person extends BasePerson {
firstName = 'John';
lastName = 'Doe';
}

当我从其他包中导入 Person 时:

import { Person } from "./directory"

class Factory {
create<T>(type: (new () => T)): T {
return new type();
}
}

let factory = new Factory();
let person = factory.create(Person);

我得到错误:“typeof Person”类型的参数不可分配给“new () => Person”类型的参数

如何获取 Person 的值而不是 typeof Person

使用 TypeScript 3.7.2 和 Node v10.13.0。

最佳答案

你能帮我试试这个吗?

import { Person } from "./directory"

class Factory {
create<T>(type: (new () => T)): T {
return new type();
}
}

let factory = new Factory();
let person = factory.create(new Person);

关于javascript - TypeScript 泛型创建实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59270809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com