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를 써주는 방법을 사용 하던지
아니면 다른 기법? 방법 있으면 보따리에서 꺼내서 알려주시면 감사하겠습니다.