타입스크립트를 공부하려 한다. 알고보니 내가 공부한 NextJS보다 타입스크립트가 훨씬 더 중요 순위가 높은 언어였던 것이다. 괜찮은 기업들은 모두 다 타입스크립트를 쓴다고 하니..
타입스크립트는 자바스크립트에 타입을 부여한 언어이다. 자바스크립트의 확장된 언어라고 볼 수 있다. 타입스크립트는 자바스크립트와 달리 브라우저에서 실행하려면 파일을 한 번 변환해주어야 한다. 이 변환 과정을 컴파일(complile) 이라고 부른다.
타입스크립트를 실행하기 위해서는 자바스크립트 파일로 변환해주는 컴파일 과정을 거쳐야 한다.
타입스크립트의 공식사이트의 플레이그라운드 메뉴에서는 타입스크립트가 실시간으로 컴파일되어 보여주는 페이지가 있어 타입스크립트 연습을 할 때 유용하게 사용할 수 있다.
타입스크립트에서는 변수마다 타입을 지정해주어야 한다. 타입지정 방법을 알아보자.
상호 간에 정의한 약속 혹은 규칙. 타입스크립트에서의 인터페이스는 보통 다음과 같은 범주에 대해 약속을 정의할 수 있다. 쉽게 말해, 복잡하고 긴 속성들의 타입을 변수처럼 미리 설정해 놓고 사용하는 것이다.
타입 별칭은 정의한 타입에 대해 나중에 쉽게 참고할 수 있게 이름을 부여하는 것과 같다. `string`, `number`와 같은 간단한 타입 뿐만 아니라 인터페이스 레벨의 복잡한 타입에도 별칭을 부여할 수 있다.
타입스크립트에서는 타입을 지정할 때, 연산자를 이용하여 여러가지 형태로 지정할 수 있다. 유니온 타입('|')은 한 개 이상의 여러 타입을 지정할 수 있게 해주고, 인터섹션 타입('&')은 여러개의 타입을 모두 충족하는 타입을 입력해야 한다.
이넘은 특정 값들의 집합을 의미하는 자료형이다. 드롭다운이나 정해져 있는 목록의 값들을 지정할 때 사용할 수 있다. 이넘은 다른 프로그래밍 언어를 다뤄본 사람들에게 친숙한 타입이다. 타입스크립트에서는 숫자형 이넘과 문자형 이넘을 지원한다.
자바스크립트에서 클래스를 선언하고 바로 `constructor`메서드로 들어올 파라미터가 어떻게 될 지 선언했었다면, 타입스크립트에서는 생성될 속성이 어떤 데이터인지 먼저 선언하고 시작한다.
타입스크립트에서는 함수의 파라미터나 리턴값을 함수를 선언할 때 미리 지정해줬어야 했다. 이번엔 타입을 호출하는 순간 지정해 줄 수 있는 제네릭에 대해 배워보자.
타입 추론이란 할당된 데이터의 타입을 타입스크립트가 추론하는 것을 의미한다. 변수, 함수, 인터페이스와 제네릭, Best Common Type의 타입 추론에 대해 알아보자.
타입스크립트는 자체적으로 변수에 할당된 데이터의 타입을 추론할 수 있다. 하지만 개발자가 항상 의도하는 대로 타입을 추론하는 것은 아니며, 타입스크립트보다 개발자가 더 타입을 잘 알고 있는 경우도 있다. 그럴 때, 개발자가 변수의 타입을 단언해 줄 수 있다.
어떤 변수의 타입이 여러가지일 때, 타입이 A인 경우와, B인 경우를 나눠서 다른 동작을 수행시킬 수 있다. 이를 타입 가드라고 한다.
타입스크립트 코드에서 특정 타입이 다른 타입에 잘 맞는지, 타입스크립트에서 두 개의 코드 타입이 서로 호환이 되는지를 점검하는 것을 타입 호환이라고 한다. 타입 호환은 타입 그 자체가 아니라 타입의 구조가 호환이 된다면 타입 호환이 된다. 이를 구조적 타이
타입스크립트에서는 특정 인터페이스나 타입을 다른 여러 파일에서 사용해야 할 경우가 있는데, 그럴 때 `export`로 내보내고 `import`로 들여와서 사용을 할 수 있다.