點燈坊

失くすものさえない今が強くなるチャンスよ

使用 isNotNil() 同時判斷不是 undefined 也不是 null

Sam Xiao's Avatar 2019-10-16

Ramda 提供 isNil(),可同時判斷 undefinednull,但並沒有提供 isNotNil(),但我們可自行組合。

Version

macOS Catalina 10.15
VS Code 1.39.1
Quokka 1.0.256
ECMAScript 2015
Ramda 0.26.1
Wink-fp 0.1.11

not()

import { compose, not, isNil } from 'ramda';

let isNotNil = compose(not, isNil);

isNotNil(1); // ?
isNotNil(undefined); // ?
isNotNil(null); // ?

not()isNil() 組合。

isnotnil000

complement()

import { complement, isNil } from 'ramda';

let isNotNil = complement(isNil);

isNotNil(1); // ?
isNotNil(undefined); // ?
isNotNil(null); // ?

也可使用 complement()isNil() 組合。

isnotnil001

Wink-fp

import { isNotNil } from 'wink-fp';

isNotNil(1); // ?
isNotNil(undefined); // ?
isNotNil(null); // ?

Wink-fp 已內建 inNotNil(),可直接使用。

isNotNil()
* -> Boolean
判斷是否不是 undefinednull

isnotnil002

Conclusion

  • 兩種方式都可以組合出 isNotNil(),可自行挑選喜愛的方式

Reference

Ramda, isNil()
Ramda, not()
Ramda, complement()