【发布时间】:2021-09-23 10:15:09
【问题描述】:
如果我有如下的 TypeScript 界面:
interface myInterface {
prop1: string;
prop2: string;
prop3: number;
prop4: boolean;
..
..
..
prop30: string
}
我想创建一个实现myInterface 的类,我只知道这样做的详细方法,如下所示:
class MyClass implements myInterface {
prop1;
prop2;
prop3;
prop4;
..
..
prop30;
constructor(data: myInterface) {
this.prop1 = data.prop1;
this.prop2 = data.prop2;
this.prop3 = data.prop3;
this.prop4 = data.prop4;
..
..
this.prop30 = data.prop30;
}
}
有什么方法可以让这个语法更短,或者有更好的方法从接口实现这样的类吗?
【问题讨论】:
-
这只是一个 DTO 吗?如果是这样,你真的需要一个类吗?
-
正是@VLAZ 所说的-
var x: myInterface = { prop1: "hello", prop2: "world", prop3: 77, ...}是该接口的有效实例。您在这里不需要需要课程(以防万一您不知道)。 -
我同意@VLAZ,它是一个 DTO,但我也想要一些方法来根据其他属性更改来更改某些属性值(例如 prop1 值在 props2 和 prop3 更改时更改)。希望这是有道理的。这是一个非常具体的问题。
-
如果它有 any 逻辑,而不仅仅是属性,则它不是 DTO。
标签: typescript