
Javascript의 한계점을 보완하기 위해 Typescript가 등장하였다.

충격적이다... 위 사진처럼 typescript는 한번 타입 검사를 거친 후 다른 언어들처럼 기계어로 번역되는 것이 아니라 javascript 코드로 변환된 뒤 기계어로 번역되는 것이다.이걸 듣자마자 속도나 성능 측면에서 엄청 떨어질 것이라고 생각했는데 검색해보니 실제

폴더 생성nodejs 패키지 초기화이후 package name부터 입력하라고 뜨면 다 엔터 쳐서 default 값으로 설정nodejs가 제공하는 내장 정보에 대한 기능들을 가지고 있는 types node라는 패키지 설치console, async, hoos 등 node.

얼마나 엄격하게 타입 오류를 검사할지, 자바스크립트 코드 버전 어떻게 할지 등을 컴파일러 옵션 설정을 통해 지정tsc를 통해 자동으로 tsconfig.json이라는 타입스크립트 컴파일러 설정 파일 생성: 여러 typescript 파일들을 컴파일할 때 파일 하나씩 명령해

Type annotaion (타입 주석) : 변수의 type을 지정하는 방식 콜론과 함께 number, string 등을 입력하여 변수의 타입을 지정 🙋🏻♂️ number 타입 : number 입력하여 타입 정의 위의 사진처럼 number 타입으로 정의되었다

배열을 사용하는 방법에는 크게 두가지가 있다.: (배열의 요소의 타입)\[] 로 타입 정의number\[]에서 number 자리에는 배열의 요소의 타입을 적고, 그 뒤에 \[]를 적어주면 배열 형식이라는 뜻이 된다.ex. number\[], string\[], bool

타입스크립트에서 아래 사진처럼 타입을 object로 지정하면, user.id처럼 속성을 불러올 수 없다.typescript에서 object는 그냥 객체라는 것을 의미하는 그 이상도 이하도 아니기 때문이다.하지만 우리가 원하는 것은 object의 속성을 불러오는 것이므로

: 타입을 변수처럼 정의하여 사용(공통적으로 계속 사용되어야 하는 타입을 정의할 때 사용)위 코드처럼 변수를 정의해뒀는데, 같은 속성을 가진 변수를 추가적으로 만들면, 공통적인 코드를 여러번 작성해야 하는 상황이 발생한다.ex) user1, user2... 변수들을 만

: 여러가지 값들에 각각 이름을 부여해 열거해두고 사용하는 타입아래 코드처럼 role을 숫자로 간단하게 표현할 때, 코드가 많아지면 role:1이 무슨 역할이었는지, 게스트의 role이 어떤 숫자였는지 기억하기 어렵다.따라서 아래 코드처럼 enum을 사용하여 각 rol

: 특정 변수의 타입을 우리가 확실히 모를 때 사용하는 타입아래 코드처럼 typescript는 점진적으로 타입을 추론하여 사용하기 때문에 처음 추론한 type과 다른 type을 할당하면 오류가 발생한다.하지만 언젠가 type 상관 없이 변수를 변화시킬 수 있어야 할 때

: 아무것도 없음을 의미하는 타입func1처럼 return 값이 string인 경우 함수명 뒤에 타입을 string으로 정의해주면 되지만, func2처럼 return 값을 두고 싶지 않은 경우 void로 지정해주어야 한다.typescript에서는 함수 타입을 null로

타입은 집합이다!!!타입스크립트의 '타입'은 사실 여러개의 값을 포함하는 '집합'이다. (집합 : 동일한 속성을 갖는 여러 개의 요소들을 하나의 그룹으로 묶은 단위)아래 사진처럼 여러개의 숫자 값들을 묶어놓은 집합 -> number 타입이라고 정의슈퍼타입(부모타입) :

: 타입 계층도의 최상단에 위치, 모든 타입의 값 할당 가능( 모든 타입은 unknown 타입으로 업캐스팅 가능 ): 타입 계층도의 가장 아래에 위치, 공집합을 뜻하는 타입( 모든 타입으로 업캐스팅 가능, 어떤 타입도 never 타입으로 다운캐스팅 불가능)\+never

위 코드에서 알 수 있듯, animal이 dog보다 슈퍼타입이다.타입스크립트는 프로퍼티를 기준으로 타입을 정의하는 구조적 타입 시스템을 따르기 때문에 Animal 타입은 name과 color 프로퍼티를 갖는 모든 객체들을 포함하는 집합으로 볼 수 있고 Dog 타입은 n

인턴 기간 중 초반에 타입스크립트에서 객체 타입을 정의할 때 interface가 아닌 type을 사용하였다. 그런데 멘토 분께서 type 말고 interface로 사용하라고 하셨고, 그 이후로 습관적으로 interface를 사용해왔는데 그 이유를 작성해보려 한다.\--