【发布时间】:2020-09-25 13:02:08
【问题描述】:
我有一个 Foo 和一个 Bar 类:
class Foo {
private name: string;
private bar: Bar;
constructor(name: string, bar: Bar) {
this.name = name;
this.bar = bar;
}
}
class Bar {
private x: number;
private y: number;
constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
}
现在使用 Typescript 构造函数简写,我可以将 Foo 写为:
class Foo {
constructor(private name: string, private bar: Bar) { }
}
但是我想做的不是将Bar 对象传递给Foo 构造函数。而是传入x 和y 的值,但仍保持使用简写符号来节省我完整写出类的时间。
实际上,可以这样:
class Foo {
private name: string;
private bar: Bar;
constructor(name: string, x: number, y: number) {
this.name = name;
this.bar = new Bar(x, y);
}
}
是用速记符号写的吗?
【问题讨论】:
-
您能否帮助我们了解为什么您希望将
x和y值作为单独的参数而不是Bar对象传递?是不是将Bar的创建封装在Foo构造函数中,而不是在调用代码中创建? -
是的,就是这个想法,将创建封装到 'Foo' 中,这样任何其他实例化 'Foo' 的类都不需要知道 'Bar'
标签: typescript