타입스크립트는 자바스크립트에 타입을 부여한 언어로 타입스크립트 범주안에 자바스크립트가 속해있다.
node.js
나 브라우저
는 타입스크립트를 해석할 능력이 없기 때문에 타입스크립트로 작성한 코드를 자바스크립트로 컴파일
과정을 거쳐서 동작하게 된다.
기존의 자바스크립트는 컴파일 후 오류가 발생하기 때문에 개발자의 입장에서 코드의 오류나 잘못된 결과값을 미리 알기 어렵다. 하지만 타입스크립트는 각 변수나 리턴값 등에 타입을 부여하고 컴파일 전에 오류를 표시하기 때문에 오류나 결과값을 미리 파악하고 대처할 수 있다.
// 자바스크립트의 경우
// 두 숫자를 더하는 함수지만 세개의 인수를 넣거나 문자타입을 넣어도 오류 발생 X
function addJS(num1, num2){
console.log(num1 + num2);
}
addJS(1,2);
addJS(1,2,3);
addJS("hellow","world");
//타입스크립트의 경우
function addTS(num1: number, num2: number) {
console.log(num1 + num2);
}
addTS(1,2); // 3
addTS(1,2,3); // 인수가 2개보다 많아 에러 표시가 생김
addTS("hellow","world"); // number 타입의 인수가 아니므로 에러 표시가 생김
타입스크립트는 기본적으로 string
, number
, boolean
을 사용한다.
let a: string = "1";
let b: number = 2;
let c: boolean = true;
타입스크립트의 배열의 경우
let arryA: string[] = ["1","2"];
let arryB: Array<number> = [1.2];
let arryC: (string | number)[] = [1,"2"];
타입스크립트의 객체의 경우
const objA: {
name: string; // 쉼표가 아닌 세미클론
age: number;
} = {
name: "jw",
age: 26
}
그 외의 타입으로 void
, never
, enum
, null
, undefined
등이 있는데 void는 함수에서 아무것도 리턴하지 않을 때 사용한다. never는 항상 error를 반환하거나 영원히 끝나지 않는 함수에서 사용한다. null과 undefined 타입은 말 그대로 사용하면 된다.
function A(): void{
console.log("hi");
}
function B(): never{
throw new Error();
}
let C: null = null;
let D: undefined = undefined;
enum은 따로 글을 작성해서 정리하겠음