我使用angular(2)和打字稿。我使用时刻库来转换日期,所以我在我的一个实用程序类中有这个函数:
static isoStringToDateObj(isoDateString: string): Date {
// For unit tests and any environment where moment library is not present
if (!moment) {
return new Date(isoDateString);
}
return moment(isoDateString).toDate();
}
这在浏览器中工作正常,但是当我尝试运行单元测试时会抛出错误: ReferenceError:无法找到变量:karma-test-shim.js中的时刻(第16240行)
它所指的行是if (!moment)
行。
declare var moment: any;
位于顶部
函数isoStringToDateObj所在的文件,为什么呢
在实际声明变量时说参考错误?答案 0 :(得分:0)
检查全局变量是否不存在的唯一正确方法是:
if (typeof moment === 'undefined') { ... }
ReferenceError:找不到变量:时刻
是运行时错误,declare var moment: any
欺骗打字系统对此保持沉默但不能以任何方式影响实际的moment
全局。