这是正确的Typescript(如果忽略静态类型,则为ES6):
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
var greeter = new Greeter("world");
console.log( greeter.greet() ); //Hello world
但是下面创建了Hello undefined
,你会如何以一种可行的方式重写它?并且,如果这不可能,那么实现这一目标的替代方案是什么?
我正在考虑将变量直接传递给函数。
class Greeter {
greet(greeting: string) {
return "Hello, " + this.greeting;
}
}
var greeter = new Greeter();
console.log( greeter.greet("world") ); //Hello undefined
更新:
我指的是像类使用的PHP,如:
class Greeter {
public function greet($greeting){
return $greeting;
}
}
答案 0 :(得分:3)
您可以在执行呼叫时将变量传递到要存储的对象中。你可以像之后一样使用它而不传递变量。然后你可以通过另一个电话改变它。
class Greeter {
greet(greeting: string) {
this.greeting = greeting || this.greeting;
return "Hello, " + this.greeting;
}
}
var greeter = new Greeter();
console.log( greeter.greet("world") ); //Hello world
console.log( greeter.greet() ); //Hello world
console.log( greeter.greet("es6") ); //Hello es6