JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout-validation/2.0.3/knockout.validation.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.min.js"></script>

JavaScript

DetailsViewModel = function(data) {
   this.year = ko.observable().extend({ required: true });
   ko.mapping.fromJS(data, {}, this);
   
   this.errors = ko.validation.group(this);
};



var vm = new DetailsViewModel({ year: null, otherProp: "foo" });
console.log(vm.errors());

vm.year(2015);
console.log(vm.errors());

console.log(vm.otherProp());