0
這與我活躍的另一個問題非常相似,但也可能會要求它與其他問題非常相似,並且可能會被不同的受衆發現有用。TypeScript的自定義敲除驗證規則
我有淘汰賽驗證自定義規則:
ko.validation.rules["sameAs"] = {
validator: function (val, otherObservable) {
return val === otherObservable();
},
message: "Value should be same as {0}, but differs"
};
現在,在原材料的javascript這工作細如使用看起來像:
function SomeObject() {
this.Email = ko.observable().extend({ required: true, email: true });
this.ConfirmationEmail = ko.observable().extend({ required: true, email: true, sameAs: this.Email });
}
但是現在打字稿土地,如果我嘗試這樣寫:
class SomeObject {
public Email = ko.observable().extend({ required: true, email: true });
public ConfirmationEmail = ko.observable().extend({ required: true, email: true, sameAs: this.Email });
}
我現在得到的錯誤:
Keyword 'this' cannot be referenced in initializers in a class body, or in super constructor calls
這是有道理的,但我不知道我該怎麼做什麼,我會原本已經做了,除非我嘗試它侵入構造或什麼的,這讓我的班,現在看起來有點可怕。
就像你說它的個人喜好一樣,我更喜歡在一個地方看到與該變量相關的所有內容,而不必環顧四周,也更喜歡我的PO * O對象沒有構造函數,因爲它們沒有邏輯,但像你說的那樣解決了這個問題。 – Grofit