打算停止在我的(JavaScript)代码中使用NULL

2020-11-01 10:50:13

如果所有@sindreshus模块都接受unfined作为其输入,这意味着当其他用户在tyescript中将null值作为值时,将需要做一些令人不快的事情才能使其工作。尽管说人们应该开始只使用未定义的代码是令人愉快的,但有些团队永远不会在这一点上达成一致。

JavaScript API不同意此规则。如果您的某个库只接受未定义的内容,但JavaScript API实际上返回NULL,会发生什么情况?Requent.querySelector()和string.Match()返回NULL。您是要做一个例外,还是让开发人员处理它?两个人都不太令人愉快。

我发现在某些用例中使用null有一点好处。请看下面的示例:

//这是我们自己的APP的世界案例示例:interface istate{dropLocation:string|null}函数getDefaultState():istate{return{dropLocation:null}}。

如果类型dropLocation为string|unfined,这将允许您跳过dropLocation声明。这乍一看似乎不错,对吧(少打字)?然而,冗长的代码和较少的规则为我赢得了胜利。Verbose很好,因为您不需要转到istate定义来查看哪些内容是状态的一部分。规则更少,因为您不需要决定是否应该添加dropLocation:未定义。这也意味着项目中的每个开发人员都不需要经历相同的思考过程。