關於 null or undefined 的檢查

大家好,小的我有個想法,想跟大家討論討論。

相信大家都很常遇到關於 null or undefined 的檢查,尤其是接受從server回傳回來的資料,更是需要去檢查合法性。

但是大家會覺得,每次檢查時都要寫個判斷式不會過於笨重且過於重複了嗎?

例如:

export class HomeComponent {

  private name = '';

  // ...

  getNameForServer() {

    // If success
    if (data.name !== undefined && data.name !== null) {
      this.name = data.name
    }

  }

}

如果每次都要這樣判斷,相信大家一定會瘋掉。

有的人可能會覺得,既然這樣,寫個Service來處理就好啦!

但每次要檢查都要 import 該 Service 還是讓我覺得有點不方便。

於是乎,我想到 JavaScript 有 prototype 的 function,

但不知道在 Angular 裡要怎麼寫才好,

抑或者,大家有更好的解決方式嗎?

1個讚

null跟undefined都是falsy value
所以可以這樣用
this.name = data.name || ''
來做設定,後面接你收到是null或undefined時,想使用的預設值
這樣如果data.name有值,this.name就是data.name 沒有就是 ‘’

4個讚

!!

原來有這種方法存在?!!

這是TypeScript or ES6的寫法嗎?

這個方法只有string可以用嗎?

其他如number boolean array也可以嗎?

這個不是ES6, 之前就可以囉
不過如果數字真的是0的時候,就會失效了
我的專案是有用lodash,所以都是直接用_.isNull

1個讚

目前看起來,最好的解法好像是引入lodash XDDD

這種事情不用引入 lodash 啦 XD

3個讚

這是JavaScript的基本語法
首先你要先了解truthy跟falsy


不只用在string上喲!

3個讚

了解!! 感謝您的回覆也感謝各位大大的回覆!!

// 懶惰方式
if (data.name) {
  this.name = data.name;
}