作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个工厂来使用泛型实例化我的类。 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/
我是一名优秀的程序员,十分优秀!