프로그래머들이 작성하는 가장 흔한 오류인 타입 오류를 방지하기 위해 만들어진 JavaScript 프로그램의 정적 타입 검사자이다.
예를 들어 JS에서 불리언 타입을 표현할 때
let isDone = false;
라는 방식으로 표현을 한다.
이를 타입스크립트에선
let isDone: boolean = false;
의 방식으로 변수를 선언할 때 타입과 함께 선언한다.
자바스크립트는 동적타입언어로
는 특징이 있고,
타입스크립트는 정적타입언어로 자바스크트를 포함하고 있는 언어라고 생각하면 된다.
let isDone:boolean = true
let isNum:number = 1
let isStr:string = 'hello'
let isArr: number[] ||string[] = [1,2,3] || ['a','b','c']
let isTuple:[string, number]
x = ['hi',12]
또한 enum은 0부터 시작하여 멤버들의 번호를 매긴다.(순서 변경도 가능!)
enum color {Red, Green, Blue}
let c: color = color.Green
enum color {Red = 0 Green=1, Blue=2}
let c: color = color.Green
+enum은 매겨진 값을 사용해 enum멤버의 이름을 알 수 있다.
enum Color {Red = 1, Green, Blue}
let colorName: string = Color[2];
console.log(colorName); // 값이 2인 'Green'이 출력됩니다.
타입의 일부만 알고 전체를 알지 못할 때 유용!!
let notSure: any = 4;
어떤 타입도 존재할 수 없음을 표현, 보통 함수에서 변환 값이 없을 때 사용
function warnUser(): void {
console.log("This is my warning message");
}
void를 타입 변수에 선언하는 것은 유용하지 않다. 왜냐하면 null, undefined만 사용할 수 있기 때문.
절대 발생할 수 없는 타입을 나타낸다.
function error(message: string): never {
throw new Error(message);
}
원시 타입이 아닌 타입을 나타낸다.
declare function create(o: object | null): void;
create({ prop: 0 }); // 성공
create(null); // 성공
create(42); // 오류
create("string"); // 오류
create(false); // 오류
create(undefined); // 오류
이러한 타입들을 함수의 매개변수에도 적용할 수도 있다. 이렇듯 타입스크립트는 변수의 타입을 먼저 정한 후 코드를 실행하므로 타입으로 인한 오류 발생을 줄일 수 있다. 이외에도 리터럴 타입, 유니언과 교차 타입 등 다양한 타입이 존재하므로 TypeScript를 참조하자. 그리고 많은 브라우저에서 타입스크립트를 사용하는 것이 아니므로 타입스크립트로 작성한 후 자바스크립트로 변형하는 과정을 갖추어야한다.