我使用的是带有Typescript的momentjs和moment-range,所以我已经从npm @types安装了moment-range的类型,momentjs的类型也附带了。
import * as moment from 'moment';
import 'moment-range';
...
private tableDatePeriod: moment.Range;但是在编译时,我得到了这个错误- [ts] Module 'moment' has no exported member 'Range'.
发布于 2016-12-10 02:27:40
尝尝这个
import * as moment from 'moment';
import { default as DateRange } from 'moment-range';
let Range=new DateRange(dayFrom, dayTo);
Range.toArray('days');
let DatesArray=[];
diffDatesArray.push(moment(some_prop_from_array._d).format("YYYY-MM-DD"));发布于 2017-01-10 00:25:37
以下内容适用于我的版本:
问题是moment-range.js没有为range功能导出任何新实体,它使用range功能扩展了moment类型。因此,这些功能应该从moment导入。
import {Moment, Range, range as RangeConstructor} from "moment";此导入从moment加载moment-range功能。在本例中,我导入了Range接口和range工厂方法(以创建/构造范围)。这应该足够了,但如果您正在使用某种类型的AMD或类似的依赖关系,则应该加载moment-range模块(需要使用AMD术语)。以下是适用于我的技巧:
import DateRange = require("moment-range");
DateRange;第一次导入包含moment-range模块作为当前模块的依赖项,因此首先会根据需要进行加载。第二行什么也不做,但是TypeScript编译器删除了未使用的依赖项,因此必须以某种方式调用以前导入的依赖项,以避免这种编译器优化。
根据您的问题,您现在可以实例化该变量:
private tableDatePeriod: Range;和初始化:
tableDatePeriod = RangeConstructor('2016-01-09', '2016-01-10');https://stackoverflow.com/questions/40159801
复制相似问题