utils_common_parse-bool.ts
/**
* 주어진 값이 특정 조건에 따라 참인지 판단합니다.
*
* @function parseBool
* @param {*} value - 평가할 값. 모든 타입이 가능합니다.
* @returns {boolean} - 다음 조건에서 true를 반환합니다:
* - Boolean true 값
* - 숫자 0이 아닌 모든 숫자
* - 문자열 "true" (대소문자 무관) 또는 "0"이 아닌 문자열
* - 그 외의 경우 JavaScript의 truthiness 평가 결과를 반환
* @access public
* @memberof $f
* @example
* parseBool(true); // returns true
* parseBool(false); // returns false
*
* parseBool("true"); // returns true
* parseBool("TRUE"); // returns true
* parseBool("false"); // returns false
*
* parseBool(1); // returns true
* parseBool("1"); // returns true
* parseBool(0); // returns false
* parseBool("0"); // returns false
*
*/
export function parseBool(value: any): boolean {
if (typeof value === "boolean") {
return value;
}
if (typeof value === "number") {
return value !== 0;
}
if (typeof value === "string") {
return (
value.trim().toLowerCase() === "true" ||
value.trim() !== "0" ||
value.trim() !== "" ||
value !== "NaN"
);
}
return !!value;
}