力矩范围插件出现Typescript错误



我在我的Ionic 2应用程序中包含了moment jsmoment-range插件,如下所示:

import * as moment from 'moment';
import 'moment-range';

这很好用,我可以同时使用它们,但Typescript给了我以下错误:

Javascript:

let range = moment().range(self.weekStart, self.weekEnd);

打字错误:

Error TS2339: Property 'range' does not exist on type 'Moment'.

我运行了以下命令,试图通过安装打字员文件来停止这个错误:

typings install moment-range --ambient --save

但似乎没有任何效果。我还有什么需要做的吗?或者有没有办法消除错误?

谢谢你的帮助。

我不得不这样做:

import * as moment from "moment";
import {extendMoment} from "moment-range";
const rangeMoment = extendMoment(moment);
const range = rangeMoment.range(start, end);

他们是我在"typescript"中工作的唯一方法:"3.4.5"

const Moment = require('moment');
import {extendMoment} from 'moment-range';
const moment = extendMoment(Moment);

我只是看了一下接口。你需要打电话给

let range = moment.range(self.weekStart, self.weekEnd);

不是moment().range

如果查看moment_range.d.ts,您会发现range方法是在静态接口MomentStatic上定义的,而不是在实例接口Moment上定义的。

我无法让Paarth解决方案工作。我还有:

Property 'range' does not exist on type 'typeof moment'.

对我来说,解决方案是使用类型断言:

let range = (<any>moment).range(startDate, endDate);

import * as moment from 'moment';
import { extendMoment } from 'moment-range';
const { range } = extendMoment(moment);
const timeRange = range(moment.utc([2015, 0, 1]), moment.utc([2015, 5, 1]));
for (const month of timeRange.by('month')) {
  console.log(month.format('YYYY-MM-DD'));
}

最新更新