a.style.display:分配给基元的值将丢失

时间:2016-07-19 16:06:31

标签: javascript intellij-idea

请考虑以下JavaScript代码段:

var a = document.createElement("a");
a.style.display = "none";

IntelliJ IDEA 2016.2突出显示a.style.display并提供此提示:

  

分配给基元的值将丢失

     

检查JavaScript原语类型的包装器是否使用不当。此外,当修改基本类型的属性时将产生警告,因为指定的值将丢失

IntelliJ IDEA hint

CSSStyleDeclaration不是原始类型,因此display的分配不会丢失。

String是一个包装类型。我如何使用它(不正确)?

代码似乎在Chrome和Edge中运行良好。这是什么交易?

1 个答案:

答案 0 :(得分:0)

你的代码中没有任何不当之处,IntelliJ的类型推断有点混乱(JavaScript的这方面特别令人困惑)。

它的linter看到一个字符串,并假设你会尝试这样的事情:

var primitive = "september";
primitive.vowels = 3;

primitive.vowels;
// => undefined

哪会导致失去'值。

为了进一步理解这个奇怪的JavaScript部分,我推荐Angus Croll的优秀深度文章here