-
타입 : 다루는 값에 대한 형태
-
타입스크립트의 기본 타입 = 자바스크립트의 원시 타입
- null, undefined, boolean, string, number, bigint, symbol
-
-
타입 시스템 : 프로그래밍 언어가 프로그램에서 가질 수 있는 타입을 이해하는 방법
-
타입 시스템의 동작
- 코드를 읽고 변수의 타입과 값을 이해
-
변수가 초기 선언에서 가질 수 있는 타입 확인
-
타입 추론 : 타입 스크립트가 코드를 해석해 나가는 동작
- 변수를 선언하거나 초기화 할 때 타입이 추론된다.
-
- 변수가 추후 코드에서 어떻게 사용될 수 있는지 모든 방법을 확인
- 변수의 타입과 변수에 할당하려는 값이 일치하지 않으면 사용자에게 오류 표시
-
-
구문 오류와 타입 오류
-
구문 오류 : 타입스크립트가 코드로 이해할 수 없는 구문을 감지했을 때 발생
- 타입스크립트가 .ts 파일에서 .js 파일을 올바르게 생성할 수 없음
-
타입 오류 : 타입스크립트의 타입 검사기가 프로그램의 타입에서 오류를 감지했을 때 발생
- .ts가 .js로 변환되는 것을 차단하지는 않지만 변환된 .js 파일이 런타임 시 에러를 발생 시킬 수 있음.
-
-
할당 가능성 : 타입스크립트에서 함수 호출이나 변수에 값을 제공할 수 있는지 여부를 확인하는 것
- 타입스크립트는 변수의 초깃값을 읽고 해당 변수가 허용되는 타입을 결정 -> 추후에 새로 할당할 값이 변수의 타입과 일치한지 확인함.
-
타입 애너테이션 : 타입 선언하는 거
-
초깃값을 할당하지 않고도 변수의 타입을 선언할 수 있는 구문
-
초깃값이 없는 변수는 타입스크립트에서 any 타입으로 간주함.
-
진화하는 any
- 초기 타입을 유추할 수 없는 변수의 타임
- 특정 타입을 강제하는 대신 새로운 값이 할당될 때마다 변수의 타입을 진화 시킴.
- 예 : string -> number
-
-
-
- 타입스크립트는 객체의 형태에 대한 이해를 바탕으로 할당 가능성뿐만 아니라 객체 사용과 관련된 문제도 알려준다. -> 타입의 형태? 객체의 형태에 대한 타입을 설정함.
- 타입스크립트는 commonjs와 같은 모듈을 사용해서 작성된 타입스크립트 파일의 import, export 형태 이해하지 못함. -> require()에서 반환된 값을 any 타입으로 인식함