Это очень похоже на другой вопрос, который у меня активен, но может также задавать его как его разные и может быть полезен другой аудитории.Пользовательские правила проверки нокаута с помощью 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 });
}
теперь я получаю ошибку:
Что имеет смысл, однако я не уверен, как я могу сделать то, что я изначально сделал, если только я не попытаюсь взломать его в конструктор или что-то еще, что делает мои классы сейчас немного ужасными.
Как вы говорите, его личное предпочтение, я предпочитаю просто видеть все, что связано с этой переменной, в одном месте, а не смотреть в другое место, также я предпочитаю, чтобы мои объекты PO * O не имели конструкторов, поскольку у них нет логики, но, как вы говорите, это решает проблему. – Grofit