# type narrowing

4개의 포스트
post-thumbnail

[Typescript] 타입 좁히기 Type Narrowing

타입 좁히기(Type Narrowing)는 예전에 unknown 타입을 다루면서 언급만 했었는데 타입 좁히기가 무엇이고 어떤 일을 하는지 이번 포스트에서 알아보도록 하겠습니다. 타입 좁히기 Type Narrowing 아래와 같은 함수가 존재할 때, 타입스크립트는 변수 x가 number인지 string인지 확실하게 알 수 없으므로 에러를 발생시킵니다. 이런 상황에서 각 상황에 맞는 메소드를 사용하고 싶다면 다음과 같이 코드를 수정해야합니다. if구문을 통해 x의 타입을 보장하여 메소드 사용과정에서 발생하는 오류를 없앨 수 있습니다. 이때 첫 번째 조건문에서는 x가 number 타입으로 보장되고, 두 번째 조건문에서는 x가 string타입으로 보장됩니다. 이렇게 타입이 보장되면 그 이후로는 보장된 타입으로 자동적으로 변경되며 이것을 타입 좁히기(Type Narrowing)라고 합니다. >타입스크립트는 else문도

2023년 8월 28일
·
0개의 댓글
·
post-thumbnail

[TypeScript] Type Narrowing (타입 좁히기)

Type Narrowing(타입 좁히기) 유니온 타입처럼 여러 타입이 될 수 있는 경우, 타입이 확정되어 있지 않은 상태에 타입을 하나로 확정 시켜주는 것을 Narrowing 이라고 한다. 다음과 같은 함수가 있다고 생각해보자. 💡 string.repeat(number) : 인자로 받은 수 만큼 문자열을 반복해서 붙인 새로운 문자열 반환 > Argument of type 'string | number' is not assignable to parameter of type 'number'. Type 'string' is not assignable to type 'number'.Argument of type 'string | number' is not assignable to parameter of type 'number'. Type 'string' is not assignable to type 'number'. > reape

2023년 8월 10일
·
0개의 댓글
·

타입스크립트 정리11: type narrowing

타입 좁히기란 주로 명확하지 않은 타입이 있을 때 사용하는 것으로 그런 타입을 유니온(union) 타입이라고 하며 이를 보다 명확하게 좁히는 것이다. 값의 타입에 따라 다르게 작동하는 함수 ‘ade’ → ‘adeadeade’ 3 → 9 이렇게 나오려면 어떻게 해야할까? Typeof Guards 가장 쉬운 방법은 typeof라는 가드를 사용하는 것이다. typeof를 사용하면 ‘number’ ‘string’ 처럼 타입이 나온다. 그걸로 if로 나눔. Truthiness Guards truthiness 가드를 사용해서 null, undefined, falsy 값을 좁히거나 제거할 수 있다. if문을 이용해서 null이나 undefined를 피한다. Equality Narrowing 만약 두 파라미터를 받는데 x는 string, boolean 이고 y는 string, number라면 x === y 인 경우는 둘 다 string인 경우밖에

2023년 5월 22일
·
0개의 댓글
·
post-thumbnail

Type Narrowing-1(typeof guard, truthiness guard, equlality narrowing, in operator narrowing, instanceof narrowing)

typescript를 사용하면서 type에 따라 사용할 수 있는 property들도 다르며 type 추론이 불가한 인자 또는 type이 여러개일 수 있는 인자(ex -> union type)를 함수에 넘겨주면 typescript는 해당 인자의 type infer가 불가능해 property를 자동으로 불러올 수 없다. 또한 typescript는 type을 모르기 때문에 정적검사(🤔)시에 즉각적으로 오류를 보여줄 수 없다. 이게 내가 생각한 type narrowing이 필요한 이유라 생각된다. 즉 정리하자면 type narrowing이 필요한 경우를 아래 2가지로 추려봤다. > 1️⃣ type추론이 불가하거나 type이 여러개일 수도 있는 경우 > 2️⃣ 자동

2022년 12월 14일
·
0개의 댓글
·