typescript 3

[타입스크립트] 제네릭

우리는 때때로 코드에서 호출하는 방식에 따라, 다양한 타입으로 구문이 작동하게끔 하고 싶다. 위 코드에서 getSize 함수의 인자는 숫자가 요소로 포함된 배열이기 때문에, 다른 요소를 포함한 배열을 인자로 받을 수 없다. 아래의 예시도 보자. class DataStorage { private data: (string | number | boolean)[] = []; addItem(item: string | number | boolean) { this.data.push(item); } removeItem(item: string | number | boolean) { if (this.data.indexOf(item) === -1) { return; } this.data.splice(this.data.ind..

타입스크립트 04. 브라우저에서 디버깅, outDir, rootDir

디버깅 타입스크립트를 컴파일한 뒤 lite-server로 개발 과정을 체크할 때, sources 탭을 보면 js 파일들만 있는 것을 확인할 수 있다. tsconfig.json 파일을 조금 수정하면 ts 파일을 디버깅 할 수 있다. { "compilerOptions": { /* Basic Options */ "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system',..

타입스크립트 01. 기본 타입(tuple, enum 포함)

string, number 타입스크립트에서는 위와 같이 함수의 인자로 들어올 타입을 미리 정할 수 있다. 그리고 함수를 호출할 때 타입이 맞지 않다면 문법 오류로 표시된다. 이는 런타임까지 가지 않고도 개발자가 오류를 확인할 수 있다는, 매우 강력한 장점이다. (자바스크립트에서는 위와 같이 if 조건문으로 에러 처리를 해주고, 런타임 에러를 발생시킨다.) 자바스크립트의 타입은 동적 타입이다. 숫자를 예상한 자리에 문자열이 입력돼도 전혀 문제가 되지 않는다는 것이다. 그래서 자바스크립트에서는 특정 타입이 필요한 코드의 경우, 런타임에서 체크할 수 있도록 typeof 연산자를 사용한다. 반면 타입스크립트의 타입은 정적 타입으로, 이는 개발 도중에 변수와 매개변수의 타입을 정의한다는 것을 의미한다. 런타임 중..