[Typescript] 코딩앙마 강의 (#1,2)

Yuzu·2023년 4월 16일
1

1. Typescript를 쓰는 이유

  • Javascript: 실행되는 시점, 즉 런타임에 type이 결정되고 오류가 있으면 그 때 발견됨
  • Java, Typescript: 정적언어, 컴파일 타임에 타입을 결정하여 오류를 미리 발견할 수 있음

타입스크립트 플레이그라운드: https://www.typescriptlang.org/play

  • typescript 형식의 함수 작성
예제1)
function add(num1:number, num2:number) { // a
console.log(num1+ num2);
}

a. 타입을 정의 (정의하지 않으면 type: any 가 됨)
:number = 숫자를 받겠다.

예제2)
function showItems(arr:number[]){ // b
	arr.forEach((item) => {
		console.log(item);
});
}

b. :number[] = 숫자배열을 받겠다.
:string[] = 문자배열을 받겠다.

2. 기본 타입

let car:string ='bmw'
let car ='bmw'  // car이 string인걸 아는것: 타입 추론

let age:number = 30;
let isAdult:boolean = true;

let a:number[] = [1,2,3];
or
let a2:Array<number> = [1,2,3];

튜플 (Tuple)

  • 배열인데 index 별로 type이 다를 때
let b:[string, number];

void, never

  • void: 함수에서 아무것도 반환하지 않을 때 사용
function sayHello():void{
	console.log('hello');
    }
  • never: 항상 에러를 반환하거나, 영원히 끝나지 않는 함수의 type으로 사용
function showError():never{
	throw new Error();
    }
    
function infLoop():never{
	while (true) {
    // do something..
    }
}

enum

  • 비슷한 값들끼리 묶어줄 때 (값들 사이에 공통점이 있음)
enum Os {
	Window,    // 0, 값이 알아서 0부터 할당됨
    Ios,		// 1
    Android		// 2
	}
    
    
enum Os {
	Window = 3,    // 3, 값을 주면 그 값이 할당됨
    Ios = 9,		// 9
    Android		// 10
	}

=> 양방향 mapping

console.log(Os[9]) 	// 'Ios'
console.log(Os['Ios']) 	// 9

=> 값이 숫자가 아닐 때는 단방향 mapping

enum Os {
	Window = 'win',   
    Ios = 'ios',	
    Android	= 'and'	
	}
    
console.log(Os['Window']) 	// 'win'
let myOs:Os;  	//type이 Os면
myOs= Os.window		//myOs에는 특정 값만 입력할 수 있어진다. (강조 효과)

null, undefined

  • let a:null = null;
  • let b:undefined = undefined;
profile
냐하

0개의 댓글