【发布时间】:2019-08-24 01:37:44
【问题描述】:
给定一个包含属性和方法的类,我想派生一个只包含其属性的类型。
例如,如果我定义一个类如下:
class MyObject {
constructor(public prop1: string, public prop2: number) {}
instanceMethod() { ... }
}
我想要一个类型,比如MyObjectConstructor,它会是这样的:
type MyObjectConstructor = {
prop1: string;
prop2: number;
}
我知道我可以使用内置类型Pick 并通过名称手动选择我想要的键,但我不想重复所有键,并且每次添加时都必须更改它们我的班级的新属性。
有没有办法定义一个泛型类型ConstructorType<T>只返回打字稿中类的属性?
【问题讨论】:
-
您基本上想要的是函数参数和对象之间的某种形式的转换,其中键是参数名称,值是参数类型。我不想这么说,但没有直接解决您的问题的方法。你找到的所有东西都会感觉像是“黑客”
标签: typescript typescript-generics