왜 필요할까?
타입스크립트 = 자바스크립트 + 타입체크
TS환경에서 JS를 코딩하면 동작 <-> JS 환경에서 TS를 코딩하면 동작 X
(쉽게 말해서 TS가 더 상위 개념인 것)
먼저 기초만 보자.
function plus(a, b) {
return a + b;
}
이게 이제 전형적인 JS 코드고, 이걸 TS로 써보면
function plus(a: number, b: number) {
return a + b;
}
이렇게 되는 것이다.
왜 데이터 타입이 중요할까?
JS 변수에는 어떤 데이터 타입의 값도 할당 될 수 있음
예를 들어서
let myName = "PCY";
이렇게 해놨는데, 누가 이거를 실수로
let myName = 1;
이렇게 바꿨다고 해보자. JS는 이런 문제들을 사전에 막지 못함. 그니까 JS에서는 저게 오류로 안 뜨는데, 저건 사실 오류임(이름에 1이 왜 들어가).
근데 TS는 이런걸 문제로 바로 잡아줌(Type 'number' is not assignable to type 'string' 이런식으로).
이게 바로 타입 추론(Type Inference)임.
TS는 타입 추론 기능을 통해 변수의 타입을 자동으로 판단할 수 있음.
TS 컴파일러가 초기에 할당된 값을 바탕으로 변수의 타입을 추론함.
타입 추론은 코드를 간결하게 작성할 수 있도록 도와주지만, 그래도 타입을 명시적으로 지정하는 것이 더 명확함.
특히 타입 추론이 모호한 경우나, 복잡한 로직에서는 타입을 명시해주는 것이 좋음.
타입스크립트에서는 다양한 데이터 타입을 지원함
크게 기본 데이터 타입, 객체 타입, 특수 타입으로 나뉨
타입 명시: 변수를 선언할 때 변수 값의 타입을 명시함으로써 변수의 데이터 타입을 지정
let x: string = "~";
함수의 매개변수들도 그냥 이렇게 하면 되고, 함수의 경우(리턴값)
function plus(a: number, b: number): number {
return (a + b);
}
아무 값도 리턴하지 않으면 void를 사용해.
function plus(a : number, b: number): void {
}
이런 식으로!