typescript获取属性名_TypeScript中类属性的命名约定

Erik Cupal..

20

回答

如果要使用get和set访问器,则必须在私有属性前加下划线.在所有其他情况下不要使用它.我会说使用下划线和加速器是一种特殊情况,尽管它没有明确地用编码指南编写,但这并不意味着它是错误的.他们在官方文档中使用它.

下划线的原因

对于开始,我想强调的区别field和property.在Java或C#等标准高级OOP语言中,field是一个私有成员,对其他类不应该是可见的.如果要在考虑封装的情况下公开它,则应创建属性.

在Java中,你这样做(它被称为Bean属性):

private int id;

public int getId() {

return this.id;

}

public setId(int value) {

this.id = value;

}

然后,您可以通过调用以下方法来访问该属性:

int i = device.getId();

device.setId(i);

//increment id by 1

device.setId(device.getId() + 1);

另一方面,C#的设计使得使用属性更加容易:

private int id;

public int Id {

get {

return this.id;

}

set {

this.id = value;

}

}

(值始终是指定的值.)

您可以直接为这些属性指定值或获取属性值.

int i = device.Id;

device.Id = i;

//increment id by 1

i

在纯JavaScript中,没有真正的字段,因为类成员总是公开的; 我们简单地称它们为属性.

在TypeScript中,您可以定义"真正的"类C#属性(使用封装).你使用Accessors.

private _id: number;

public get id(): number {

return this._id;

}

public set id(value: number) {

this._id = value;

}

用法:

let i: number = device.id;

device.id = i;

//increment id by 1

device.id++;

你必须在这里使用下划线,原因有两个:

在JavaScript中,所有类成员都是公共的.因此,通过在私有属性之前加上下划线,我们签名,此属性(字段)是私有的,只能由它的公共属性访问.

如果您使用相同名称命名私有属性和公共属性,则JavaScript解释器将不知道是访问私有属性还是公共属性.因此,您得到了您正在撰写的错误:[ts]重复的标识符"id".

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值