tsimport { Newtype, iso } from 'newtype-ts'
// この2つを定義しておく
interface EUR extends Newtype<{ readonly EUR: unique symbol }, number> {}
const isoEUR = iso<EUR>() // :: Iso<EUR, number>
const myamount = isoEUR.wrap(0.85) // :: EUR
const n = isoEUR.unwrap(myamount) // :: number = 0.85
isoEUR.wrap()
がいわゆるsmart constructorに相当するnewtype-ts | haskell |
interface EUR extends Newtype<..> | newtype EUR = EUR .. |
const isoEUR = .. | |
isoEUR.wrap | mkEUR |
isoEUR.unwrap | unEUR |