JavaScript는 변수를 할당한 후 이후에 다시 할당할 때, 타입을 상관하지 않는다

 

 

그러나 이렇게 작동하면 에러가 발생하지 않지만 실제 배포 후 페이지를 이용하게 될 때, 의도하지 않는 동작을 할 수 있다. 

TypeScript는 이러한 동작을 방지하기 위해 변수를 할당할 때 타입을 미리 지정하여, 배포전 에러를 미리 확인할 수 있게 도와준다.

 

타입스트립트 (TypeScript) : 자바스크립트의 타입을 강제 시키는 언어

 

 

//자바스크립트

let aaa = "안녕하세요"
aaa = 2

 

 

타입스크립트로 타입을 지정하는 방법에 대해 알아보자

 

  // 타입추론 : 처음에 들어온 값으로 타입을 추론, 지정합니다.
  
  let aaa = "안녕하세요";
  aaa = 3; //에러 발생

 

  // 타입명시 : 타입을 직접 명시합니다.
  
  let bbb: string = "반갑습니다.";
  let bbb = 10; //에러발생

 

  // 불린타입
  
  let eee: boolean = true;
  eee = false;
  eee = "false"; // ★문자열에 내용이 있으니 true로 동작합니다.★

 

  // 배열타입

  let fff: number[] = [1, 2, 3, 4, 5, "안녕하세요"]; // Error: "안녕하세요" 
  let ggg: string[] = ["철수", "영희", "훈이", 10]; // Error: 10
  let hhh: (string | number)[] = ["철수", "영희", "훈이", 10]; // 에러 없음

 

  // 객체타입
  
  interface IProfile {
    name: string;
    age: number | string;
    school: string;
    hobby?: string; //? 는 있어도 되고 없어도 가능하다는것을 의미합니다.
  }

  const profile: IProfile = {
    name: "철수",
    age: 8,
    school: "다람쥐초등학교",
  };
  profile.name = "훈이"; // 타입추론으로 이것만 가능
  profile.age = "8살"; // 타입추론으로 불가능
  profile.hobby = "수영"; // 타입추론으로 불가능

 

// ★★함수타입★★

  function add(num1: number, num2: number, unit: string): string {
    return num1 + num2 + unit;
  }
  const result = add(1000, 2000, "원"); //결과의 리턴 타입도 예측 가능

  // 화살표 함수
  const add2 = (num1: number, num2: number, unit: string): string => {
    return num1 + num2 + unit;
  };
  const result2 = add(1000, 2000, "원"); //결과의 리턴 타입도 예측 가능

  // any타입
  let qqq: any = "철수"; //자바스크립트와 동일!
  qqq = 123;
  qqq = true;

  return <></>;
  //타입스크립트는 js 영역(컨테이너)이 typescript로 변경됩니다.
}

 

 

'리액트' 카테고리의 다른 글

Conditional-rendering, 리액트 조건부 렌더링  (0) 2023.01.24
map, filter, every 활용  (0) 2023.01.24
Static, Dynamic 라우팅 (정적 / 동적 라우팅)  (0) 2023.01.18
React state 원리와 props  (0) 2023.01.18
폴더 구조 체계화  (0) 2023.01.16

+ Recent posts