일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 러스트기초
- 스마트컨트렉트테스트
- 러스트 기초 학습
- SBT표준
- 오블완
- erc4337
- ethers v6
- ethers type
- 계정추상화
- 체인의정석
- 스마트컨트렉트 예약어 함수이름 중복
- chainlink 설명
- ambiguous function description
- ethers websocket
- 스마트컨트렉트 함수이름 중복 호출
- Vue
- 러스트 기초
- Vue.js
- erc4337 contract
- rust 기초
- ethers typescript
- 머신러닝기초
- vue기초
- 티스토리챌린지
- multicall
- ethers
- 스마트 컨트렉트 함수이름 중복
- 컨트렉트 동일한 함수이름 호출
- git rebase
- 컨트렉트 배포 자동화
Archives
- Today
- Total
체인의정석
typescript undefined 조건문 검사 spread syntax 와 &&를 사용하여 코드 단축하기 본문
728x90
반응형
코드리뷰를 받으면서 더 깔끔한 코드를 작성하기위하여 한가지 트릭을 피드백 받아 정리한다.
이를 이해하기 위해서는 spread에 대한 기본 지식이 필요하다.
먼저 spread syntax 부터 찾아 보았다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Spread_syntax
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
console.log(sum(...numbers));
// expected output: 6
console.log(sum.apply(null, numbers));
// expected output: 6
다음과 같이 spread를 이용할때 적용되는 특성이 있다. 우선 spread를 하게 되면 해당 객체의 모든 property를 다시 불러오게 된다. 또한 이 과정에서 만약 spread에서 false 값이 리턴되게 되면 아무일도 일어나지 않는다고 한다. 이를 이용하여 undefined를 검사하는 코드를 짧게 단축 시킬 수 있다고 한다.
원래 코드
static fromJson(json) {
const addressType = json.addressType;
let department;
if (json.department) {
department = json.department;
}
return new Address({
addressType,
department
});
}
}
수정된 코드
static fromJson(json) {
return new Address({
...(json.addressType && { addressType: json.addressType }),
...(json.department && { department: json.department }),
});
}
}
수정된 코드를 보면 json.addressType이 만약 없는 경우 false 값이 나오게 된다. 그러면 &&에 의하여 자동적으로 해당 값은 아무일도 일어나지 않은 상태로 패스가 되게 된다. 만약 값이 있는 경우 해당 값이 Address의 생성자로 들어가게 된다. 이런 식으로 코드를 짜게 되면 불필요한 if문을 통한 빈값이 들어왔을 때의 검사를 생략할 수 있다.
728x90
반응형
'개발' 카테고리의 다른 글
Tool 소개) spectacle (0) | 2021.07.22 |
---|---|
typescript 커스텀 모듈 만들어서 사용하기 (0) | 2021.07.21 |
Jest 에러 상황 테스트 하는 법 (0) | 2021.07.19 |
Destructuring 구조분해 할당 (0) | 2021.07.16 |
객체지향 프로그래밍 하기2 (0) | 2021.07.16 |
Comments