我tcomb
目前正在尝试使用并失败,因为我无法理解如何定义实例函数。
假设我有一个类型:
t.struct({
year: t.Integer,
monthIndex: t.Integer,
dayIndex: t.maybe(t.Integer),
indexInMonth: t.maybe(t.Integer),
title: t.Str,
subtitle: t.maybe(t.Str),
description: t.maybe(t.Str),
iconIdentifier: t.maybe(t.Str),
})
到目前为止,一切都很好。
问题
现在假设我想添加一个可以读取并获取正确月份名称的month
实例方法:this
month() {
return MonthsInYear[this.monthIndex]
},
如果我尝试将其添加到上面的内部,它只是看不到它。
const b1 = CalEvent({
year: 2015,
monthIndex:2,
title: 'abc',
description: 'abc'
})
console.log(b1.month)
如果我尝试做mixin
任何事情,而不是 每次都定义函数,也会发生同样的情况。
我最初of
在那里有语法,就像compare
下面的函数一样......
t.struct({
year: t.Integer,
monthIndex: t.Integer,
compare: t.func([CalEvent], CalEventComparisonResult).of(
(toCompare) => CalEvent(compare(this,toCompare))
),
dayIndex: t.maybe(t.Integer),
indexInMonth: t.maybe(t.Integer),
title: t.Str,
subtitle: t.maybe(t.Str),
description: t.maybe(t.Str),
iconIdentifier: t.maybe(t.Str),
})
还是没有骰子。
我开始认为我想做的事情不能在tcomb
. 如果是这样的话,我会感到震惊的是,没有包括这样的基本能力......