我是对的,Typecript构造函数中的公共成员在类中是公共的,私有成员是私有的吗?
如果是这样,公众成员和财产之间的有效区别是什么? \
假设不同之处在于属性可以更像c#属性(也就是说,可以将代码与其访问权限相关联),为什么要将字段设为公开,而没有内在的保护把它变成财产?
答案 0 :(得分:4)
private创建一个字段,public创建一个属性。
这不像是一个C#属性,实际上是什么使它成为一个属性只是它是公共的。没有访问者。
答案 1 :(得分:1)
让我们首先看到C#类,然后将其转换为Type Script:
public class Car {
private int _x;
private int _y;
public Car(int x, int y)
{
this._x = x;
this._y = y;
}
}
不能从类外访问_x和_y,而只能通过构造函数进行分配,如果要在TypeScript中编写相同的代码,它将是:
class Car {
constructor(private _x: number, private _y: number) {}
}
如果您使用过Type Script,您会注意到,我们使用此关键字来访问这些变量。
如果仅是参数,则在类的构造函数中使用this._x
或this._y
的含义是什么,因为它也会创建成员变量。
这是从上面的Type Script代码生成的JavaScript代码:
var Car = (function () {
function Car(_x, _y) {
this._x = _x;
this._y = _y;
}
return Car;
})();
this._x和this_y在另一个函数中移动,这意味着Car对象无法访问它,但是您可以启动并分配new Car(10, 20)
希望我能正确解释:)