TypeScript 변경 작업 일지 #1
2022. 3. 4. 15:40ㆍ개발일지
1. 타입 가드 사용
사용 함수에서 return 타입이 null, IBoss, IBoss[]로 세 종류 일때
Argument of type 'IBoss | IBoss[]' is not assignable to parameter of type 'IBoss[]'.
Type 'IBoss' is missing the following properties from type 'IBoss[]': length, pop, push, concat, and 29 more.
와 같은 에러가 발생한다.
이 때 에러를 없애려고 as 타입을 사용했는데 잘못된 방법이였다
잘못된 사용 방법
const bosses = await BossCheck(true) as IBoss[] | null
if (bosses !== null) {
const bossCreate = await BossCreate(boss, bosses)
bossList = bossCreate
} else {
const bossCreate = await BossCreate(boss, [])
bossList = bossCreate
}
as는 강제로 타입형식을 변경하는거고 정석은 함수에서 지정한 타입을 타입가드를 이용하여 사용해야한다.
정상 사용 방법
const bosses = await BossCheck(true) as IBoss[] | null
if (bosses !== null && Array.isArray(bosses)) {
const bossCreate = await BossCreate(boss, bosses)
bossList = bossCreate
} else {
const bossCreate = await BossCreate(boss, [])
bossList = bossCreate
}
타입가드를 if문을 사용하여 진행한다.
728x90
반응형
'개발일지' 카테고리의 다른 글
TypeScript 변경 작업 일지 #0 (0) | 2022.01.25 |
---|---|
2022/01/15 가계부 백 서버 ts로 변환 하기 2 (해결) (0) | 2022.01.15 |
2022/01/09 가계부 백 서버 ts로 변환 하기 (0) | 2022.01.09 |
2020-07-31 (0) | 2020.07.31 |
20/04/26 가계부 만들기 (0) | 2020.04.27 |