일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ethers websocket
- git rebase
- 스마트컨트렉트테스트
- 머신러닝기초
- ethers typescript
- 체인의정석
- Vue.js
- 스마트컨트렉트 함수이름 중복 호출
- 컨트렉트 동일한 함수이름 호출
- 스마트컨트렉트 예약어 함수이름 중복
- ethers
- 깃허브명령어
- 러스트기초
- ethers v6
- multicall
- vue기초
- nest.js설명
- 스마트 컨트렉트 함수이름 중복
- ambiguous function description
- ethers type
- Vue
- 컨트렉트 배포 자동화
- 러스트 기초
- nestjs 튜토리얼
- 러스트 기초 학습
- chainlink 설명
- rust 기초
- 스마트컨트렉트프록시
- 프록시배포구조
- SBT표준
Archives
- Today
- Total
체인의정석
Typescript) string을 받아와서 enum으로 고칠 경우 any를 안쓰고 타입체크하는 방법 본문
728x90
반응형
타입스크립트에서 타입을 any로 지정하는것은 최대한 지양해야하는 부분이다.
따라서 아래와 같이 any 타입으로 지정되어 있는 부분을 string으로 받아와서 enum으로 고칠 수 있다.
여기서 사용한 것은 key of type of로 특정 변수를 문자열로 받아와서 key of type of를 사용하면 enum 타입에 해당되며 해당 키가 있는지를 체크하여 리턴 해줄 수 있다.
keyof 는 객체의 키 값을 나타내며
type of는 해당 값의 타입을 나타낸다.
B가 enum이고 A가 string입력 값일때
A as keyof typeof B 와 같이 사용하면 A라는 string을 B에 대핟하는 키 값과 타입으로 바꿔주는 역할을 한다.
따라서 이 구문을 이용하여 체크가 가능하다.
참고링크
https://stackoverflow.com/questions/55377365/what-does-keyof-typeof-mean-in-typescript
예시는 아래와 같다.
any가 들어간 코드
export enum LegalPersonNameTypeCode {
LEGL = "LEGL", // Legal name
}
export function toLegalPersonNameTypeCode(legalPersonNameIdentifierTypeParam: string) {
const legalPersonNameIdentifierType: LegalPersonNameTypeCode = (<any>LegalPersonNameTypeCode)[
JSON.stringify(legalPersonNameIdentifierTypeParam)
];
if (legalPersonNameIdentifierType) {
return legalPersonNameIdentifierType;
}
throw new Error(`${legalPersonNameIdentifierType} must be one of 'LEGL',,,,,`);
}
수정한 코드
export function toLegalPersonNameTypeCode(legalPersonNameIdentifierTypeParam: string) {
if (!(legalPersonNameIdentifierTypeParam in LegalPersonNameTypeCode)) {
throw new Error(`LegalPersonNameType must be one of 'LEGL'..... `);
}
return LegalPersonNameTypeCode[legalPersonNameIdentifierTypeParam as keyof typeof LegalPersonNameTypeCode];
}
728x90
반응형
'개발 > backend' 카테고리의 다른 글
Toobusy.js에 대하여 (0) | 2021.08.27 |
---|---|
Restful API에 맞게 수정하기 (0) | 2021.08.05 |
Typescript nested class에서 에러, 예외 처리부분 validate 함수로 만들어서 빼기 (0) | 2021.07.30 |
Type script, implements (0) | 2021.07.30 |
optional chainning 적용 시 리턴값 문제 (0) | 2021.07.29 |
Comments