study/TypeScript

TypeScript 000 소개

salalsksjwnn 2023. 4. 20. 08:54
728x90

 

타입 스크립트란?

  • 안전하고 예측가능한 코드 구현에 초점을 맞춘 js의 상위집단 언어
  • 기존 js에 type 시스템을 적용
  • typeScript컴파일러를 통해 js로 변환되고 실행됨
  • decorator와 같은 다양한 기능을 제공

 💡 TypeScript = JavaScript + Type System

loosely typed 언어는 자유도는 있지만 안정성이 떨어진다. js는 type에 대해 느슨하기 때문에 ts가 만들어진 것

js에서 n이라는 변수를 만들 때 let, const, var 등을 사용할 수 있는데 n값에 대한 type은 명시하고 있지 않다. = 어떤 타입이든 변수 n에 들어갈 수 있다.

function add(n1, n2){
return n1+n2;
}

반대로 C나 JAVA같은 언어는 타입을 지정해 주어야 하는데(strongly typed or state typed) ts는 이런 타입 시스템을 적용할 수 있도록 해 놓은 언어

function add(n1:number, n2:number):number{
	return n1+n2;
}

타입 시스템

  • js의 타입
    • 원시타입(Primitive Type)
      • number bnoolean undefined string symbol null (void)
    • 객체 타입
      • functions arrays classes

js는 인터프리터를 이용한 라인 단위의 번역을 실행하기 때문에 가능 Dynamic typed이다

ts는 이런 js를 정적으로 만들어준다.

  • ts의 타입
    • 정적 타입을 지원 - 변수, 파라미터, 함수의 값에 타입을 지정할 수 있다.
    • 지정된 데이터 타입만 사용할 수 있다.
      • 만약 다른 값을 대입하거나 전달인자로 전달한다면 compile 시점에 에러를 낸다.
    • 변수와 파라미터에는 변수명 이후에 타입을 지정해준다
    • 함수의 반환값에 대해서는 함수의 시그니처 마지막에 정의를 하게 된다.
    let year : number = 2020;
    /////
    function sumNumbers(firstNumber : number, secondNumber: number) : number {
    	return firstNumber + secondNumber;
    }
    

타입 추론

  • 정적으로 타입을 명시하지 않고 대입하는 값을 통해 타입을 유추해 결정하는 것
  • 기본적으로 변수의 선언과 함께 값을 대입하는 경우 해당 변수는 타입추론으로 인해 대입되는 값의 타입을 갖는다.
  • 변수를 선언하고 같은 코드 라인에서 특정 값을 대입하면 ts는 대입값의 타입을 유추해 변수의 타입을 확정한다.
  • 변수의 선언과 값을 대입을 다른 코드라인에서 진행하면 해당 변수는 any타입의 변수가 된다.
let name = 'Min';
//let name  : string
let age = 20;
//let age : number

//타입추론 - js처럼 어떤 타입을 넣을 수 있다. 타입 검사를 수행하지 않음
let name;
//let name : any
name = 'Min';

let age;
//let age : any
age = 20;

 

 

출처 : 나무소리 타입스크립트(https://youtu.be/0UMmCbcZid0)

728x90