大家好,小的我有個想法,想跟大家討論討論。
相信大家都很常遇到關於 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
這是JavaScript的基本語法
首先你要先了解truthy跟falsy
不只用在string上喲!
3個讚
// 懶惰方式
if (data.name) {
this.name = data.name;
}