1.Type System
- TypeScript 는 안전하고 예측 가능한 코드 구현에 초점을 맞춘 JavaScript 상위 집합 언어입니다.
- TypeScript 의 가장 큰 특징은 JavaScript에 Type System을 적용한 것으로 정적 데이터 타입입니다.
- TypeScript 로 작성된 코드는 TypeScript 컴파일러를 통해 JavaScript 로 변환되고 이후 실행됩니다.
- Type System 이외에도 TypeScript는 Decorators와 같은 다양한 기능을 제공합니다.
TypeScript = JavaScript + Type System
- TypeScript의 가장 큰 특징은 JavaScript의 타입 체계에 정적 타입을 적용할 수 있도록 한것입니다.
- JavaScript는 동적 타입 체계의 언어로 변에 타입을 지정하지 않습니다.
- 동적 타입 체계는 프로그램에 유연성을 제공하지만 변수에 할당된 값을 읽어 사용하는 단게에서 문제가 발생 할 수있습니다.
- TypeScript는 변수, 파라미터에 타입을 지정할 수 있으며 선언된 타입의 값이 아닌 경우 에러를 발생합니다.
- TypeScript는 정적 타입을 지원 합니다. 변수의 정의와 함께 대입할 값의 타입을 함께 지정합니다.
- 변수를 정의하면서 타입을 함께 지정하면 해당 타입의 데이터만 대입 가능하며 다른 타입의 값을 대입하면 컴파일 시점에 에러가 발생합니다.
- 변수의 선언과 마찬가지로 함수의 매개변수, 반환값의 정의에도 동일한 시스템을 적용할 수 있습니다.
- 매개변수에 타입을 지정하면 해당 타입의 데이터를 전달 인자로 하며 반환 값도 동일합니다.
2.Type Inference
- 정적으로 타입을 명시하지 않고 대입하는 값을 통해 타입을 유추해 결정하는 것이 타입 추론(type inference)입니다.
- 기본적으로 변수의 선언과 함께 값을 대입하는 경우 해당 변수는 타입 추론으로 인해 대입되는 값의 타입을 갖습니다.
- 변수를 선언하고 같은 코드 라인에서 특정 값을 대입하면 TypeScript는 대입값의 타입을 유추해 변수의 타입을 확정합니다.
- 변수의 선언과 값의 대입을 다른 코드 라인에서 진행하면 해당 변수는 any 타입의 변수가 됩니다.
'js > TypeScript' 카테고리의 다른 글
TypeScript - 이넘(Enums) (0) | 2022.07.27 |
---|---|
TypeScript - 인터페이스 (0) | 2022.07.27 |
TypeScript - 함수 (0) | 2022.07.27 |
TypeScript - Union Type (0) | 2022.07.27 |
TypeScript - 기본 타입 (0) | 2022.07.26 |