dev/JS

typescript 스터디 2.

dev포포 2021. 1. 7. 10:08

참고

www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html

 

 

Documentation - TypeScript for JavaScript Programmers

Learn how TypeScript extends JavaScript

www.typescriptlang.org

Union 

 

 간단하게 설명하면 타입을 쓰는데 다른 타입을 쓰고 싶을 때 쓸 수 있음.

 

 변수 : 타입 파이프 타입 형태

이런 식으로 파이프(or)로 구분하여 사용.

 

하단 코드는 매개변수로 들어오는 타입이 유니온으로 서로 다른 타입일 때 어떤 식으로 처리하는지에 대해 짧게 요약되어 있다.

function wrapInArray(obj: string | string[]) {
  if (typeof obj === "string") {
    return [obj];
//          ^ = (parameter) obj: string
  } else {
    return obj;
  }
}

 

매개변수에 정의한 문자열, 문자열 배열을 제외하곤 별 문제없어 보인다.

타입 체크 방식

 

Generics

type StringArray = Array<string>;
type NumberArray = Array<number>;
type ObjectWithNameArray = Array<{ name: string }>;

타입 정의 후 위와 같이 사용할 수 있다.

 

그렇다면 위와 같이 꺽새괄호 내부 T는 무엇일까? 타입을 정의할 때는 분명 꺽새괄호 내부가 데이터 타입이었는데

함수를 선언하니 데이터 타입과는 상관없는 문자가 나왔다.

 

여기서 들어오는 T는 타입 매개변수라 한다.

 

그렇다면 T라는 것을 무조건 써야 할까?

아니다 별 문제없다.

꺽새괄호 내부에 들어오는 것은 타입 매개변수이므로 일반적인 함수의 매개변수와도 같이 이름은 큰 의미가 없다.

하지만 많이 T라고 쓰는 것이 type argument를 겨냥하고 쓴 게 아닐까 한다.

 

지금까지 유니온, 제네릭에 대해 다뤄 보았다.

 

 

Js에서는 없던 부분이었기 때문에 스터디를 조금 더 해야 할 부분인 거 같고

기존 타입 언어를 쓰는 사람이라면 빠르게 얻어갈 수 있는 부분인거 같다.