javascript - ตัวสังเกตและคุณสมบัติที่คำนวณได้ของ Ember js ใน typescript
ฉันจะกำหนดตัวสังเกต (observers) และคุณสมบัติที่คำนวณได้ (computed properties) ของ Ember.js โดยใช้ TypeScript ได้อย่างไร?
ฉันต้องเขียนโค้ดต่อไปนี้ในไทป์สคริปต์
module App {
App.UserController = ember.ObjectController.extend({
firstName: "John",
lastName: "Doe",
fullName: function() {
return this.get("firstName") + " " + this.get("lastName");
}.property("firstName", "lastName")
});
}
บางอย่างเช่น:
class UserController extends ember.ObjectController {
firstName: string;
lastName: string;
constructor() {
super();
this.firstName = "John";
this.lastName = "Doe";
}
get fullName(): string {
return this.firstName + " " + this.lastName;
}.property("firstName", "lastName")
}
แต่นี่ดูเหมือนไม่ได้ผล ใครสามารถบอกวิธีที่ถูกต้องในการทำสิ่งนี้โดยไม่ใช้จาวาสคริปต์ได้ไหม?
คำตอบ #1
นี่คือเวอร์ชันของโค้ดของคุณที่จะคอมไพล์ได้:
module App {
export var UserController = Ember.ObjectController.extend({
firstName: "John",
lastName: "Doe",
fullName: function () {
return this.get("firstName") + " " + this.get("lastName");
}.property('model.isCompleted')
});
}
// Example:
var x = App.UserController;
อัปเดต
คุณสามารถนำสิ่งนี้ไปใช้ด้วยคลาสได้ นี่คือตัวอย่างที่คอมไพล์ได้:
class UserController extends Ember.ObjectController {
private firstName: string;
private lastName: string;
constructor() {
super();
this.firstName = "John";
this.lastName = "Doe";
}
get fullName(): string {
return this.firstName + " " + this.lastName;
}
}
var x = new UserController();
console.log(JSON.stringify(x));
