본문 바로가기
typescript

typescript 기본 타입

by dev__log 2024. 3. 4.

1. boolean

  • true / false 를 나타낸다.
  • 주로 조건문, 비교 연산 등에서 사용된다.

 

2. number

  • 다른 프로그래밍 언어와 다르게 모든 숫자 타입을 number로 나타낸다.

 

3. string

  • 텍스트 데이터를 나타낸다.

 

4. array

  • 값을 배열의 형태로 나타낸다.
  • 나타내는 방법에는 2가지가 있으며 배열 요소들을 나타내는 타입 뒤에 [] 를 사용하는 방법과 제네릭 배열 타입이 있다.
let numArr: number[] = [1, 2, 3];

let numArr: Array<number> = [1, 2, 3];

 

5. tuple

  • 배열과 비슷하지만, 고정된 타입과 고정된 수를 가진다. (배열은 한가지 타입만 가질 수 있다)
  • 선언된 순서에 맞는 타입을 가진 데이터를 넣지 않으면 에러가 난다.
  • tuple은 아래와 같이 2개만 넣어야 하는경우 배열 자체를 할당하면 2개만 넣으라는 에러를 발생시키지만, push 를 통해 데이터를 추가할 경우 에러를 발생시키지 않는다. 이 점을 기억하고 있어야한다.
let x: [number, string];
x = [33, 'jin']; //ok
x = ['jin', 33]; //error

x = [33, 'jin', 344]; //error - Type '[number, string, string]' is not assignable to type '[number, string]'.  Source has 3 element(s) but target allows only 2.
x.push(54); //ok - 고정된 길이 및 타입을 가진 튜플인데 push로 추가할 경우 에러를 발생시키지 않음... 주의!

 

 

6. enum

  • 상수와 같은 데이터 집합을 이해하기 쉬운 이름으로 지정할 수 있는 타입이다.
  • enum 안에 있는 요소들의 값이 설정되지 않을 경우 0부터 시작한다.
  • enum 안의 요소는 number 와 string 타입만 가질 수 있다.
enum Size {
    small = 'S',
    midium = 'M',
    large = 'L'
}

let s: string = Size.large; //L

 

 

7. any

  • 모든 타입의 슈퍼 타입이며, 어떤 타입의 값이든 저장할 수 있는 타입이다.
  • 어떠한 타입으로 사용될지 알 수 없을 때 any를 사용한다.
  • any는 최대한 사용하지 않는게 좋다.

 

8. unknown

  • any 타입처럼 모든 타입의 값을 저장할 수 있다는 점이 같지만, unknown은 변수에 값을 할당할 때 어떤 타입으로 할당할 것인지에 대해 as를 사용하여 타입을 지정해야한다.
  • any 보다는 unknown 을 쓰는게 좋지만 unknown도 재할당이 이루어져야 타입 체크를 하므로 안전성이 보장되지 않는다.
let value: unknown = 'text!';

let text: string;
text = value as string; //타입 명시!

 

 

9. union

  • | 연산자를 사용하여 여러가지 타입을 지정할 수 있다.
function showText(text: string | number) : string | number{
	return text;
}

 

 

10. literal

  •  union type(|) 과 같이 사용하면 유용하다. 
  • 타입을 원하는 명칭으로 지정하여 사용할 수 있다.
const add = (input1: number | string, input2: number | string, resultType: "number" | "type") => {
  let result;
  if ((typeof input1 === "number" && typeof input2 === "number") || resultType === "number") {
    return (result = +input1 + +input2);
  } else {
    return (result = input1.toString() + input2.toString());
  }
};


console.log(add("3", "4", "number")); //리터럴 타입을 사용함.

문자 2개를 넣고 숫자로 더하는 로직으로 갈 수 있도록 마지막 매개변수에 number 타입을 넣었다.

'typescript' 카테고리의 다른 글

[typescript] 교차 타입 Intersection Type  (0) 2024.04.01
유틸리티 타입  (0) 2024.03.05