Skip to content

强类型需求描述

在业务很简单的情况下,文字描述就足够说清楚一段需求了。但是随着业务的增长和迭代、代码越来越多,“一处变更了,但是另一处遗漏了”这种事越来越可能发生,我们就要花费更多的时间用于检查。

此时不妨多利用 d.note 函数,在需求描述中对相关的变量进行强引用,让 ts 编译器来分担一些排错的任务。

ts
const bookValues = {
  图书价格: i.valueObj('price', '图书价格'),
}

const orderValues = {
  订单流水号: i.id('orderSequence', '订单流水号'),
  订购数量: i.valueObj('quantity', '订购数量'),
}

const 订单聚合 = d.agg(
  'OrderAgg',
  [
    orderValues.订单流水号,
    d.valueObj(
      '最终价格',
      d.note`最终价格 = ${bookValues.图书价格} * ${orderValues.订购数量}`
    ),
  ],
  '订单聚合'
)