检查typeof!=='object'中断文件中的导出

时间:2019-04-23 15:26:33

标签: javascript node.js

我有一个utils.js文件。其中包含许多功能,这些功能在我导出的文件末尾具有:

exports.findOtherOccurrenceInList = findOtherOccurrenceInList;
exports.cloneList = cloneList;
exports.isNullOrUndef = isNullOrUndef;
exports.isNullOrEmpty = isNullOrEmpty;
exports.cloneObject = cloneObject;

我的问题与“ cloneObject”功能有关。此功能的来源是:

function cloneObject(objToClone) {
  if (typeof objToClone !== 'string') {
    return objToClone;
  }
  if (isNullOrUndef(objToClone)) {
    return objToClone;
  }

  let temp = objToClone.constructor();

  for (let key in objToClone) {
    temp[key] = cloneObject(objToClone[key]);
  }

  return temp;
}

然后我通过解构分配将utils.js包含在.vue文件中。这样可以正常工作。

但是,一旦我将函数的第一行更改为

 if (typeof objToClone !== 'string') {

进入

 if (typeof objToClone !== 'object') {

所有出口似乎都中断了,因为立即产生了许多警告:

warning  in <some code>

"export 'cloneList' was not found in '@/utils/utils'

warning  in <some code>

"export 'isNullOrEmpty' was not found in '@/utils/utils'

warning  in <some code>

"export 'findOtherOccurrenceInList' was not found in '@/utils/utils'

等。

当我将第一行改回对'string'的检查后,所有内容再次起作用,并且警告消失。 (而且我尝试用module.exports导出函数,但这没有任何区别...)

什么可能导致这种奇怪的行为?

0 个答案:

没有答案