언어/타입스크립트

[typescript] 타입종류, type alias

youngble 2022. 2. 21. 11:58

 

Tuple 타입 = 자바스크립트에는 없는 타입스크립트에 있는 새로운 기능으로 고정된 길이를 갖는 배열 타입을 의미

Enum 타입 = 자바스크립트에는 없는 타입스크립트에 있는 새로운 기능으로 열거형으로 이름이 있는 상수들의 집합을 정의할 수 있다, 열거형

Union 타입 = string | number | boolean 등 한가지가 아닌 여러개의 다른 타입을 받을때 파이프기호(|) 사용 => 타입스크립트를 좀더 flexible 하게 만들어주기위해서 사용

리터럴(literal) 타입 =

리터럴 타입은 변수 혹은 매개변수 등이 string이나 number 처럼 어떠한 포괄적인 타입을 가지는 것이 아니라 변수나 매개변수에 정확한 값을 설정하는 것을 의미, TypeScript에는 문자열과 숫자, boolean 가지 리터럴 타입이 있는데 이를 사용하면 문자열이나 숫자에 정확한 값을 지정할 있다.

const helloWorld = "Hello World";
let hiWorld = "Hi World";

예시에서 helloWorld 문자열이 아닌 "Hello World" 타입을 정하지만 hiWorld 변경될 있으므로 문자열로 선언한다.

 

 

Union any 차이?

Type alias, 사용자 정의 타입 

기존

Type alias 사용자정의타입 추가

복잡할 있는 객체 타입에도 별칭을 붙일 있다.

 

// typescript
type User = { name: string; age: number };
const u1: User = { name: 'Max', age: 30 }; // this works

타입 별칭을 사용하면 불필요한 반복을 피하고 타입을 중심에서 관리할 수 있다.

 

타입 별칭 적용전

//typescript
function greet(user: { name: string; age: number }) {
  console.log("Hi, I am " + user.name);
}
function isOlder(user: { name: string; age: number }, checkAge: number) {
  return checkAge > user.age;
}

적용후

//typescript
type User = { name: string; age: number };
function greet(user: User) {
  console.log("Hi, I am " + user.name);
}
function isOlder(user: User, checkAge: number) {
  return checkAge > user.age;
}