我正在使用 angular(2) 和打字稿。我正在使用 moment 库来转换日期,所以我在我的一个实用程序类中有这个函数:
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: Can't find variable: moment in karma-test-shim.js (line 16240)
它所指的线就是if (!moment)
线。
- 为什么它关心变量是否存在于仅检查变量是否存在的语句中?它没有引用任何属性。
- 我
declare var moment: any;
在文件的顶部有函数 isoStringToDateObj 所在,那么为什么在实际声明变量时会说引用错误?