카테고리 없음

[230531]TypeScript 찍먹 2

감귤밭호지차 2023. 5. 31. 16:50

> Enum : 열거형 

- 특정 값의 집합을 정의할 때 사용됩니다. (문자형 과 숫자형에서 사용)

# 숫자형 열거형은 "상수값"을 대신하여 사용되므로 타입스크립트에서 많이 사용됩니다. 

    - 코드의 가독성을 높이고 오타와 같은 실수를 방지해줍니다. 

 

# 문자형 열거형은 주로 외부에서 가져온 값을 타입스크립트에서 다루기 위해서 사용됩니다. 

    - Ex. HTTP요청 방식을 나타내는 열거형 정의

    - 코드의 가독성을 높이고 오타와 같은 실수를 방지해줍니다. 

enum HttpMethod {
   Get = 'GET',
   Post = 'POST',
   Get = 'PUT',
   Get = 'DELETE',
}

* Reverse mappings: 역 매핑이라고 ' 숫자형 열거형'에서 역으로 key 값을 이용해서 value를 얻거나 반대로 value 로 key를 얻을 수도 있습니다. 

 

 

 

> 타입 별칭 / 타입 추론 / 타입 호환 

간단하게 타입 별칭타입에 새로운 변수 이름을 지정해서 이 변수로 설정한 타입을 사용할 수 있게 하는 기능이고 -> 특정 타입이나 인터페이스를 참조할 수 있는 타입 변수를 의미하고, 타입 추론은 타입을 선언하지 않아도 타입스크립트가 자동으로 유추하는 기능입니다. 타입 호환은 특정 타입이 다른 타입에 잘 맞는지 의미합니다. 

 

 

Q1 . 사실 이렇게만 보면 가독성을 높이거나 실수를 줄이기 위해 사용한다는 생각이 듭니다. 근데 타입 추론은 자바스크립트가 타입을 설정하지 않아도 알아서 타입을 추론해주는 기능이 있어서 이를 확실히 하기 위해서 타입 선언을 위한 타입스크립트를 사용한다고 이해를 했는데 왜 굳이 또 타입 추론이라는 기능이 있는지 이해가 되지 않는 군요. 가독성/생산성/ 오류 발견 용이 라고는 하는데... 

 

Q 02. 타입 별칭은 나중에 쉽게 참고할 수 있게 이름을 부여해서 사용하는 건데, 인터페이스랑 비슷한 친구로 이해가 됩니다. 근데 인터페이스와의 다른 점은 VS에서 인터페이스는 내부 프로퍼티가 보이지 않고 타입 별칭은 볼 수 있다는 점과, 인터페이스는 확장이 가능하고 타입 별칭은 불가능하기 때문에 ' 인터페이스로 선언해서 사용하는 것을 추천하다고 합니다. ' .. 그러면 왜 있는 거죠..? 

타입 별칭의 목적은 코드의 간결함 가독성 그 뿐인가요..? '좋은 코드는 언제나 확장이 용이해야 한다는 원칙이 있슴다. ' 

 

Q3. 타입 호환이 특정 타입이 다른 타입에 잘 맞는지를 의미한다는데.. 자스는 객체 리터럴이나 익명 함수 등을 사용해서 명시적으로 타입을 지정하는 것 보다 코드의 구조 관점에서 타입을 지정하는 것이 더 잘 어울린다고 하는데... : 타입 추론?? 뭔 소리야.. 도데체 

 

 

> 제네릭(generic)

보통 C# 이나 Java에서 재사용성이 높은 컴포넌트를 만듣ㄹ 때 자주 활용되는 특징이라고 합니다. 여러 가지 타입에서 동작하는 컴포넌트를 생성하는데 사용 됩니다. 

* 제네릭 : 타입을 마치 함수의 파라미터처럼 사용하는 것

 

인자로 받는 값에 따라 타입을 넘긴다..라고 이해를 했습니다. 

 

functioin getText<T>(text: T): T {
  return text;
}

getText<string>('hi');
getText<number>(10);
getText<boolean>(true);

* 근데 에러남..? 왜..?

 

Q : 제너릭을 또 어떤 인자 타입을 받는지 모르고 명시적으로 설정하는데 한계가 있을 때 사용을 한다라고 이해를 했는데 이게 맞는지..