我有一个仅有时出现的全局对象。在我的 Create React App 项目中,我想使用条件来根据此全局对象是否存在来设置不同的值。然而,ESLint 阻止我编译,因为它不喜欢未定义的变量。
我可以检查变量是否未定义,例如:
if (typeof componentObj === "undefined") {
message = "Default message";
}
ESLint 对此很满意。但我不能在其中添加
else
,例如:
if (typeof componentObj === "undefined") {
message = "Default message";
}
else {
message = componentObj.message;
}
ESLint 将在 else 语句中出现未定义的
componentObj.message;
错误。
我该如何解决这个问题?
我发现我通过添加注释让 ESLint 忽略某些行
// eslint-disable-line
。
所以对于上述我可以做:
if (typeof componentObj === "undefined") {
greeting = 'Data not from component object';
}
else {
greeting = componentObj.title; // eslint-disable-line
}
它将编译。
if (typeof componentObj === "undefined") {
message = "Default message";
}
else if("message" in componentObj) {
message = componentObj.message;
}
// OR
if (typeof componentObj === "undefined") {
message = "Default message";
}
else if(componentObj.hasOwnProperty("message")) {
message = componentObj.message;
}