• 로그인
  • 장바구니에 상품이 없습니다.

Typescript

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #107093

    최문길
    참가자
    function 클리닝함수(arr:(number|string)[]):number[]{
          for(let i=0; i<arr.length;i++){
              
                if(typeof arr[i]==='string') {
                      arr[i] = Number(arr[i])
                }
          }
          return arr
    }
    console.log(클리닝함수(['1',2,'3']))
    
    //type 'string number' is not assignable to type 'number[]' type 'string|number' is not assignable to type 'number'
    
    이런 에러가 뜹니다. 
    
    해결은 머, 센세의 멋진 강의를 알기에 해결 하였는데
    
    return type을 명시해주는 곳도, 파라미터의 type과 일치 시켜야만 하는지 
    아니면 
    
    function 클리닝함수(arr:(number|string)[]):number[]{
          for(let i=0; i<arr.length;i++){
              
                if(typeof arr[i]==='string') {
                      arr[i] = Number(arr[i])
                }
          }
          return arr as number[]
    }
    이런식으로 as를 써주는 방법을 사용 하던지 
    
    아니면 다른 기법? 방법 있으면 보따리에서 꺼내서 알려주시면 감사하겠습니다.
    #107114

    codingapple
    키 마스터
    Number()에 넣어도 숫자로 안변하는 문자도 있어서 그렇거나
    타입스크립트 버그거나 둘 중 하나인듯요
    as 씁시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠