타입스크립트를 쓰는 이유를 알아보자!
TypeScript01
01. 타입스크립트를 쓰는 이유를 알아보자!
Javascipt (동적언어) : 런타임에 타입 결정 / 오류 발견 Java, TypeScript (정적언어) : 컴파일 타임에 타입 결정 / 오류 발견
function add(num1, num2){
console.log(num1 + num2);
}
add(); //NaN
add(1); //NaN
add(2,3); // 5
add(3,4,5); // 7
add('hello','world'); // 'hello world'
자바스크립트로 이 코드를 작성할 경우 이런식으로 작성되지만 타입스크립트로 이 코드를 돌리면 2, 3 과 hello world를 제외한 함수호출 라인에 오류가 뜬다.
function add(num1 : number, num2 : number){
console.log(num1 + num2);
}
// add();
// add(1);
add(2,3);
// add(3,4,5);
// add('hello','world');
이처럼 타입을 넘버로 하면 문자열인 마지막 호출문도 오류가 뜬다.
function showItems(arr) {
arr.forEach((item) => {
console.log(item);
});
}
showItems([1, 2, 3]);
showItems(1, 2, 3);
이 코드도 타입스크립트로 바꿔주자
function showItems(arr:number[]) {
arr.forEach((item) => {
console.log(item);
});
}
showItems([1, 2, 3]);
showItems(1, 2, 3); //오류 ! 배열이 아니기 때문.
02. 타입스크립트 기본 타입
number, string
let age:number = 30;
let isAdult:boolean = true;
let a:number[] = [1, 2, 3];
let a2:Array<number> = [1,2,3]
let week1:string[] = [‘mon’, ‘true’, ‘wed’];
let week2:Array<string> = [‘mon’, ‘true’, ‘wed’];
Tuple
// 튜플 (Tuple)
let b:[string, number];
b = [‘z’, 1];
// b = [1, ‘z’]; 오류!
b[0].toLowerCase();
// b[1].toLowerCase(); 오류!
void, necer
// void, never
function sayHello():voide{
consoe.log(‘hello);
}
voide는 아무것도 반환하지 않을때 쓸 수 있다.
function showError():never{
throw new Error();
}
never는 항상 에러를 반환할 때나
function infLoop():never{
while (true) {
// do something. . .
}
}
영원히 끝나지 않을 타입의 함수일때 쓴다.
enum
// enum
enum Os {
Window,
Ios,
Android
}
null, undefined
// null, undefined
let a:null = null;
let b:undefined = undefined;