我在TypeScript中使用Moment.js(如果重要的话,在Angular 2下).当我使用带有文字值的add()方法作为参数时,它工作正常:
moment().add(1, 'month');
但是,如果我尝试用字符串替换单位,它将失败:
let units:string = 'month'; moment().add(1, units);
有这个错误:
Argument of type '1' is not assignable to parameter of type 'DurationConstructor'.
我在这做错了什么?
不推荐的反向过载add(unit: unitOfTime.DurationConstructor, amount: number|string)
会产生歧义.
您可以通过定义类型的解决这个问题的units
是DurationConstructor
不是string
:
let units: moment.unitOfTime.DurationConstructor = 'month'; moment().add(1, units);