
타입 확정 전
function 함수(x :number | string){
return x + 1 //에러 발생
}
number | string과 같은 union 타입은 타입을 확실하게 정해줘야 함.
Narrowing 방법
function 함수(x :number | string){
if (typeof x === 'number') {
return x + 1
}
else if (typeof x === 'string') {
return x + 1
}
else {
return 0
}
}
if문 + typeof 연산자를 이용하여 타입을 체크하는 방법을 Narrowing 방법이라고 칭함.
else문의 경우 return 하지 않는 조건문 발생 시 에러가 발생할 수 있어서 else문까지 조건을 해주는 습관이 필요.
Narrowing방법 대표 3가지
1. typeof 변수
2. 속성명 in 오브젝트자료
3. 인스턴스 instanceof 부모
꼭 typeof 연산자가 필요한 것이 아니라, 타입을 확정 지을 수 있는 코드라면 그것도 일종의 Narrowing방법이다.
Assertion 방법
function 함수(x :number | string){
return (x as number) + 1
}
console.log( 함수(123) )
as키워드 사용.
-> x라는 변수를 number타입으로 정하겠다.라는 의미보다는 number이라고 주장하겠다.라고 생각해야 함.
이유는 실제로 타입을 변경하는 것이 아니기 때문.
union타입과 같은 애매한 타입을 정확한 타입으로 주장할 때 사용함.
number타입에 as string으로 변경은 불가능
as방식은 왜 쓰는 거지?
1. 타입에러가 왜 발생하는지 모르는 경우 임시해결용
2. 어떠한 타입이 들어오는지 확실히 알고 있지만, 에러가 발생하는 경우
하지만 대체적으로 Narrowing 방법이 엄격하고 자주 사용되며, 타입스크립트에 어울린다고 볼 수 있다.
'TypeScript' 카테고리의 다른 글
Literal Types (0) | 2023.07.03 |
---|---|
타입 정의가 길고 복잡하다면 type alias & readonly (0) | 2023.07.02 |
함수에 타입 지정하는 법 (0) | 2023.07.02 |
타입을 미리 정하기 애매할 때 (union, any, unknown) (0) | 2023.07.02 |
타입스크립트 기본 타입 정리 (primitive types) (0) | 2023.07.02 |

타입 확정 전
function 함수(x :number | string){
return x + 1 //에러 발생
}
number | string과 같은 union 타입은 타입을 확실하게 정해줘야 함.
Narrowing 방법
function 함수(x :number | string){
if (typeof x === 'number') {
return x + 1
}
else if (typeof x === 'string') {
return x + 1
}
else {
return 0
}
}
if문 + typeof 연산자를 이용하여 타입을 체크하는 방법을 Narrowing 방법이라고 칭함.
else문의 경우 return 하지 않는 조건문 발생 시 에러가 발생할 수 있어서 else문까지 조건을 해주는 습관이 필요.
Narrowing방법 대표 3가지
1. typeof 변수
2. 속성명 in 오브젝트자료
3. 인스턴스 instanceof 부모
꼭 typeof 연산자가 필요한 것이 아니라, 타입을 확정 지을 수 있는 코드라면 그것도 일종의 Narrowing방법이다.
Assertion 방법
function 함수(x :number | string){
return (x as number) + 1
}
console.log( 함수(123) )
as키워드 사용.
-> x라는 변수를 number타입으로 정하겠다.라는 의미보다는 number이라고 주장하겠다.라고 생각해야 함.
이유는 실제로 타입을 변경하는 것이 아니기 때문.
union타입과 같은 애매한 타입을 정확한 타입으로 주장할 때 사용함.
number타입에 as string으로 변경은 불가능
as방식은 왜 쓰는 거지?
1. 타입에러가 왜 발생하는지 모르는 경우 임시해결용
2. 어떠한 타입이 들어오는지 확실히 알고 있지만, 에러가 발생하는 경우
하지만 대체적으로 Narrowing 방법이 엄격하고 자주 사용되며, 타입스크립트에 어울린다고 볼 수 있다.
'TypeScript' 카테고리의 다른 글
Literal Types (0) | 2023.07.03 |
---|---|
타입 정의가 길고 복잡하다면 type alias & readonly (0) | 2023.07.02 |
함수에 타입 지정하는 법 (0) | 2023.07.02 |
타입을 미리 정하기 애매할 때 (union, any, unknown) (0) | 2023.07.02 |
타입스크립트 기본 타입 정리 (primitive types) (0) | 2023.07.02 |