[React] TypeScript

2023. 4. 27. 11:17·FE·Client/React
728x90

타입스크립트는 자바스크립트의 superset 언어로 자바스크립트를 기반으로 하되, 보다 더 확장된 프로그래밍 언어

대신 타입스크립트는 리액트와 달리, 자바스크립트 라이브러리가 아니기 때문에 자바스크립트의 기존 기능을 기반으로 새로운 기능을 만들거나 기능을 확장하진 않는다.

대신 자바스크립트의 주요 문법보다 확장된 문법을 가진다.

 

** 타입스크립트는 정적타입(Statically Typed)을 가진다는 것

자바스크립트는 동적인 언어라, 변수 타입을 따로 지정해주지 않아도 자동으로 인식해서 결과값을 출력한다.

fucntion add(a, b){
  return a + b;
}

const result = add(2,5);

console.log(result);
//7
fucntion add(a, b){
  return a + b;
}

const result = add('2',5);

console.log(result);
//25

 

문자일 경우 알아서 문자로 인식하고, 숫자일 경우 알아서 숫자로 인식해 결과값을 출력한다.

 

fucntion add(a: number, b:number){
  return a + b;
}

const result = add(2 , 5);

console.log(result);

 

타입스크립트에서는 타입을 따로 지정해줄 수 있음 !

 

 

* 타입스크립트 설치 

npm install typescript
npm install -g typescript
//전역으로 설치하고 싶을 때 -g 추가

 

** 타입스크립트 코드는 브라우저에서 실행되지 않는다.

브라우저에서 타입스크립트 코드를 실행하기 위해서는 자바스크립트 형태로 컴파일 해야한다.

컴파일이 진행되는 동안, 타입표기는 전부 지워짐 !

 

컴파일러를 실행하려면, 

npx tsc

명령어를 사용해야하는데, 명령어를 실행하려면 타입스크립트 구성 파일을 프로젝트 폴더에 추가해

타입스크립트에게 컴파일할 파일을 알려줘야 한다.

 

Primitives : number, string, boolean

More complex types : arrays, objects

Function types : parameters

 

Primitives(기본형) number, string, boolean

let age: number;

age = 12;

let userName: string;

userName = "Max";

let isInstructor: boolean;

isInstructor = true;

 

More Complex types arrays, objects

let hobbies: string[];

hobbies = ["Sports", "Cookking"];

 

any는 예비적으로 사용하는 타입이므로, 사용하지 않는 것이 좋다

let person: any;

 

하나의 구조만 가지는 객체를 저장하고 싶을 때

let person: {
  name: string;
  age: number;
};

person = {
  name: "Max",
  age: 32,
};

person 객체 중 name과 age를 가지는 객체만 저장하겠다고 타입 지정해준다.

 

let people: {
  name: string;
  age: number;
}[];

people에 name, age 구조를 가진 객체 하나를 저장하는 것이 아니라 객체 배열을 저장하겠다고 표시.

 

let people: {}[];
728x90

'FE·Client > React' 카테고리의 다른 글

[React] 제네릭(generic)  (0) 2023.04.27
[React] 타입 추론(Type Inference) | 타입 별칭(Type Alias)  (0) 2023.04.27
[React] 리덕스 툴킷  (0) 2023.02.06
[React] Redux toolkit  (1) 2023.02.01
[React] Redux  (0) 2023.01.31
'FE·Client/React' 카테고리의 다른 글
  • [React] 제네릭(generic)
  • [React] 타입 추론(Type Inference) | 타입 별칭(Type Alias)
  • [React] 리덕스 툴킷
  • [React] Redux toolkit
DROPDEW
DROPDEW
💻 Developer | 기록하지 않으면 존재하지 않는다
  • DROPDEW
    제 2장 1막
    DROPDEW
  • 전체
    오늘
    어제
    • Dev (443)
      • App·Android (1)
      • BE (50)
        • HTTP 웹 기본 지식 (8)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (12)
        • 스프링부트와 JPA 활용 (11)
        • 스프링부트 시큐리티 & JWT (0)
        • 실전 자바 기본, 중급 (1)
        • PHP (11)
      • FE·Client (23)
        • HTML (1)
        • React (19)
        • Unity (1)
      • Data (28)
        • AI (7)
        • Bigdata (6)
        • Database (1)
        • Python (0)
        • 빅데이터분석기사 (13)
      • Infra (1)
      • Activity (9)
        • Intern (0)
        • SK AI Dream Camp (2)
        • 구름톤 유니브 4기 (1)
        • 리모트 인턴십 6기 (3)
        • 봉사활동 (0)
        • 부스트캠프 AI Tech 8기 (3)
      • CS (8)
      • 취준 (12)
        • 자격증 (4)
        • 인적성·NCS (6)
        • 코테·필기·면접 후기 (2)
      • 코테 (270)
        • Algorithm (222)
        • SQL (35)
        • 정리 (13)
      • 인사이트 (27)
        • 금융경제뉴스 (7)
        • 금융용어·지식 (2)
        • 북마크 (7)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    투포인터
    그래프이론
    자료구조
    백준
    이분탐색
    누적합
    다이나믹프로그래밍
    티스토리챌린지
    시뮬레이션
    문자열
    매개변수탐색
    정렬
    구현
    브루트포스 알고리즘
    수학
    그리디알고리즘
    오블완
    최단경로
    그래프탐색
    너비우선탐색
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
DROPDEW
[React] TypeScript
상단으로

티스토리툴바