타입스크립트 + 객체지향 프로그래밍 마스터 (1)

SangBooom·2021년 6월 27일
0

왜 타입스크립트 배워야 할까?

자바스크립트는 프로그램이 동작할때 타입이 결정되는 위험한(?) 프로그래밍 언어이다.

반면에 타입스크립트는 타입이 정적으로 결정되고 코딩할때 타입이 결정되어 즉각적으로 에러를 발견할 수 있다.

목표

  1. 타입을 광범위하게 설정하지 말고 더 명확하게 타입을 명시하기

  2. interface와 type중 어떤 걸 써야할지 명확하게 구분하기

기본 타입 정리

자바스크립트 타입은 두가지가 있다.

원시 타입 : number,string,boolean,null,undefined,symbol,bigint
객체/참조 타입 : function, array, object

원시 타입은 쉽게 말해, 정수, 실수, 문자, 논리 리터럴등의 실제 데이터 값을 저장하는 타입이고,

참조 타입은 객체(Object)의 번지를 참조(주소를 저장)하는 타입으로 메모리 번지 값을 통해 객체를 참조하는 타입이다.

// number
const num:number = -6;

// string
const str:string = 'hello;

// boolean
const bool:boolean = true;

// undefined
let age: number | undefined;
age = undefined;
age = 1;

// 근데 undefined의 자료형을 쓸 일이 있을까??
// 아래와 같이 무언가를 찾을때 있으면 반환하고 없으면 찾지 못했으니 undefined를 리턴해야 될때가 있을것이다.
function find(): number | undefined {
 	return undefined; 
}

// null
let person = null; // 이렇게 쓰지말자..
let person = string | null;

// unkown - 알수없는 타입일 때, 걍 안쓰는게 좋음 
let notSure: unknown = 0;
notSure = "he";
notSure = true;

// any - 아무타입이나 가능! 지양하자.. 불가피할 상황일 때만..
let anything: any = 0;
anything = 'hello';

// void - 아무것도 리턴하지 않는 함수일 때만 (자동으로 타입이 void로 설정됨)
function print():void {
	console.log('hello');
  	return;
}

// never - 절대 리턴할 수 없는 타입일 떄
function throwError(message: string): never {
	throw new Error(message); // 1번 상황: 에러를 서버에 던질 때
  
  	while(true) {
   		// 2번 상황: 리턴은 안하고 while문에서 무한루프 돌때
    }  
}

// object
let obj: object; // 너무 광범위, 추상적이다. 이렇게 쓰지말자는 것이 목표!
function acceptSomeObject(obj: object) {}
acceptSomeObject({ name: 'asd' });
profile
끊임없이 떨어지는 물방울이 바위를 뚫는다

0개의 댓글