在typescript类中,有没有办法为setter方法和类属性使用相同的名称?这将使设置和获取值更加一致。例如:
myClass.myValue = "Hello"; //Setter.
var myValue = myClass.myValue; //Getter.
class myClass {
myValue: string;
myValue(inArg: string) {
alert("inArg: " + inArg);
}
}
答案 0 :(得分:2)
不,这与在javascript中创建类的方式有关:
var MyClass = (function () {
function MyClass() {
this.myValue = "string";
}
MyClass.prototype.myValue = function (inArg) {
alert("inArg: " + inArg);
};
return MyClass;
}());
然后你这样做:
let obj = new MyClass();
您创建了一个类的实例,其中包含原型中存在的所有内容,包括myValue
方法,但是在构造函数中,您使用字符串覆盖属性myValue
。
这与此类似:
class MyClass {
myValue(inArg: string) {
alert("inArg: " + inArg);
}
}
let obj = new MyClass();
obj.myValue = "a string";
唯一的区别是,在此示例中,您仅为myValue
覆盖obj
,而不覆盖MyClass
的其他实例,而在您的示例中,它将为所有实例执行此操作,因为它在构造函数。