该打字稿编码指南状态
使用undefined.不要使用null
刚刚阅读了另一篇关于ECMAScript的文章,该文章提倡null而不是undefined,我想知道微软或TypeScript团队的理由是否为这个决定所知?
Est*_*ask 10
指南不需要任何基本原理,可以随意选择要求以保持代码库的一致性.
对于此准则,undefined需要输入更多字符,但不需要将其显式分配给可空变量或属性:
class Foo {
bar: number|undefined;
}
function foo(bar: number|undefined) {}
Run Code Online (Sandbox Code Playgroud)
与
class Foo {
bar: number|null = null;
}
function foo(bar: number|null = null) {}
Run Code Online (Sandbox Code Playgroud)
此外,null在运行时检查值的类型不太方便,因为typeof val === 'object'对于两者null和对象值,它都是typeof val === 'undefined'为了undefined.
有相关的TSLint规则解决了这个问题,no-null-keyword.
几个月前我做了一些研究,结果发现必须使用 tslint 规则“no-null-keyword”优先考虑未定义的内容。
我尝试更改我的代码库,但遇到了一些问题。为什么?因为我使用的 API 对于空字段返回 null。
由于 tslint 三等号规则,我陷入了困境。
if (returnedData === undefined) // will be false because returnedData is null
这让你有两个选择:
1) 在三等规则中添加一些参数。
"triple-equals": [true, "allow-null-check"] 并执行If (returnedData == null)
允许空检查允许“==”为空
2) 使用If (returnedData)代替,但它检查是否为 null/未定义/空字符串或零
| 归档时间: |
|
| 查看次数: |
3125 次 |
| 最近记录: |