Source var t = require('tcomb-form'); var Gender = t.enums({ M: 'Male', F: 'Female' }); var Country = t.enums({ US: 'United States', IT: 'Italy' }); var Person = t.struct({ fullName: t.Str, nickname: t.maybe(t.Str), gender: Gender, country: Country, tags: t.list(t.Str) }); var Form = t.form.create(Person, { fields: { gender: { factory: t.form.radio } } }); Source var Target = t.enums.of('Hotel B&B