타입스크립트(2)

null·2021년 10월 16일
0
  • 배열 타입 정의 방식 const value: number[] = [1, 2, 3]; const value: Array = [1, 2, 3];
  • tuple 타입 정의 방식 (배열은 아니고 각 인덱스 별로 타입을 정의 ) const data: [string, number] = [msg, size];

console.log(typeof [1, 2, 3]); // object

javascript에서 배열이 객체로 나온다. 고로 우린 타입스크립트 써야 한다

  • undefind null 타입 보통 다른 타입과 같이 사용한다. // ex. const amo : number | undefined 여기서 | union 타입 이라고 부른다
  • 타입스크립트는 숫자와 문자열의 리터럴도 타입 정의 가능 ex. const v1: 10 | 20 | 30 혹은 '안녕' | '졸리다'

여기서 리터럴이란?

리터럴은 상수처럼 메모리 어딘가에 값이 변하지 않도록 저장이 되는데,, 이름이 없음

즉 리터럴은 컴파일시 프로그램내 정의되어있는 그대로 정확히 해석되어야 할 값

(테이터를 표현하는 방식을 리터럴이라고도 함)

  • any 모든 타입
  • 함수의 반환타입은 void never 사용 가능 never 타입은 예외가 발생해서 비정상적으로 종료되거나 무한루프 때문에 종료 되지 않는 걸 ..

    거의 사용 안함

객체의 타입은 object 근데 그냥 const amo: object; 라고 해버리면 amo 속성값 접근 시 에러남

속성까지 설정 해주려면 뒤에서 사용하는 인터페이스

  • union 타입과 intersection 타입

const amo: (1 | 2 | 3) & (2 | 3 | 6)

여러 타입의 교집합과 합집합을 표현할 수 있음

이렇게 할경우 amo = 2, 3만 가능한 타입이 되는거임

  • enum

자바에 있는 타입,,, enum을 사용할 경우에 Fruit랑 그 안에 있는 원소 모두 각각 타입으로 사용이 가능하다.

그리고 값 뿐만아니라 값으로도 사용이 가능하다

enum Fruit { Apple, Banana, Orange, }

const v1: Fruit = Fruit.Apple;

const v2: Fruit.apple | Fruit.Banana = Fruit.Banana;

enum 첫 번째 원소에 값을 할당하지 않으면 자동으로 0 할당 , 각 원소에는 숫자 또는 문자열을 할당할 수 있다 그 다음 원소는 이전 원소보다 1씩 커진다 그 말은 banana 뒤에 orange는 6을 할당 받을거다

그리고 enum은 객체로 존재

profile
개발이 싫어.

0개의 댓글