함수 매개변수를 구조화할 때 기본적으로 빈 객체를 사용합니까?
4467 단어 discussjavascript
const fn = ({ foo, bar }) => console.log(foo, bar)
그러나 인수 없이 호출하면
TypeError: Cannot destructure property 'foo' of '_ref' as it is undefined.
(일관적으로, 관례에 따라) 이 문제에 어떻게 접근합니까?
a) 코드가 이 오류에 부딪히게 하고 고차 try-catch까지 버블링되도록 놔두시겠습니까?
const fn = ({ foo, bar }) => console.log(foo, bar)
exort const whatever = function (argsFromOutside) {
try {
return fn(argsFromOutside)
} catch (e) {
// log error etc.
return null
}
}
b) 기본적으로 빈 객체로 설정하시겠습니까?
const fn = ({ foo, bar } = {}) => console.log(foo, bar)
그렇다면 개체의 매개변수도 기본값으로 설정합니까? 이렇게:
const fn = ({ foo = {}, bar = {} } = {}) => console.log(foo.y, bar.x)
나는이 특별한 경우가 있었고 코드를 점점 더 읽을 수 없게 만들었습니다 ...
c) 함수 내부의 구조화
const fn = (args) => {
if (!args) return
const { foo, bar } = args
console.log(foo, bar)
}
이것은 분명히 원래 예제에서와 같이 실제로 동일한 매개변수 분해가 아닙니다.
d) 다른 것?
Reference
이 문제에 관하여(함수 매개변수를 구조화할 때 기본적으로 빈 객체를 사용합니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jankapunkt/do-you-default-to-empty-object-when-destructuring-function-parameters-2gid텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)