Today I Learned_221219
TypeScript
타입스크립트를 왜 배워야 하느냐? - 자바스크립트보다 안정적.
안정적 - 에러가 덜 난다.
타입스크립트들은 실수들을 잡아줄 뿐, 자바스크립트의 에러를 완전히 커버하지는 않는다.
Trade-off에 의해 자바스크립트보다 자유도가 많이 줄어들었지만, 대신 안정성이 높아진다.
또한 자바스크립트에서 타입스크립트로 전환하는게 어렵지는 않음 - 러닝커브가 낮다.
자바스크립트 - 명시적인 자료형이 없다. 타입스크립트는 여기다가 타입을 명시해 준 것.
타입스크립트는 코드가 실행되기 전에 실행하고(정적), 프로그램 타입이 정확한지 확인한다(타입 검사)
typescript는 최종적으로 javascript로 변환된다
- 브라우저들은 js를 실행하지 ts를 실행하지는 않는다.
- typescript에서는 말이 되는데 javascript에서 말이 안 되는 코드는 있을 수 없음 → 최종적으로 javascript로 변환되기 때문에
- javascript에 타입들이 추가되었다고 이해하자.
- deno : 바로 타입스크립트를 사용할 수 있다. 자바스크립트 실행 안 해도 됨.
- 그러나 deno는 node조차 뛰어넘지 못함…
- 대중적인 런타임은 존재하지 않는다…
- typescript는 언어이자 컴파일러(tsc)이다. 컴파일러는 ts 코드를 js로 바꿔준다.
- 엄밀하게 말하면 트랜스파일러가 맞지 않을까..
- 코드를 열심히 짜고 tsc를 통해 변환한다.
- tsc는 tsconfig.json에 따라 ts 코드를 js(tsc 시 생성)로 바꿔준다. 인풋인 ts와 아웃풋인 js 모두에 영향을 끼치므로 tsconfig.json 설정을 반드시 봐야한다.
- 컴파일러 옵션들에 따라서 결과물이 달라진다.
- tsc에게 명령하면 내 typescript 코드를 특정 버전의 javascript로 변경할 수 있다.
- 가장 중요한 파일!!! (package.json도 중요하자)
- tsc는 타입 검사의 역할도 한다.
- 변수에 타입을 부여하고 추론해 준다. 명확한 타입을 기입하면 기억하고, 타입을 기록하지 않는다면 추론한다.
- tsc의 역할 : 타입스크립트 코드를 자바스크립트로 변환해 준다.
- 타입 검사 - 변환 순서대로 진행됨
- 타입 검사가 실패하더라도 자바스크립트로 변환은 된다.