본문 바로가기

TypeScript

(7)
20210512 TypeSciprt 07 Generic : array, tuple, function (type alias, interface), class, extends, keyof, generic 관계성(union type 문제 해결법) TypeScript07 Generic 어떤 함수에서 들어오는 매개변수에 대한 type과 return type에 대한 일정한 규칙 및 관계를 같게 하기 위해서 사용 계속 똑같은 로직이지만 들어오는 type이 변하는 경우 type에 따른 return type을 나타낼때, type에 따른 함수를 개별적으로 반복적으로 만드는 것은 비효율적이다. 그래서 type을 변수로 사용하여 들어오는 type에 따라 동적으로 사용하고 싶을 경우 문제의 시작 같은 로직이지만 들어오는 type 만 다른 경우 -> 중복의 증가 function helloString(message: string): string { return message; } function helloNumber(message: number): number { r..
20210511 TypeSciprt 06 class : contructor(optional) & initialize(async), 접근제어자(private, protected), getter&setter, readonly, IndexSignature, static, singleton(싱글톤 패턴), 상속(extends, super), abstract TypeScript06 Class 클래스? ojbect를 만드는 blueprint (설계도) 클래스 이전에 object를 만드는 기본적인 방법은 function JS는 es6 부터 class를 사용 가능 (접근 제한 키워드가 부족함) OPP을 위한 초석 TypeScript 에서는 클래스도 사용자가 만드는 타입의 하나임 (JS보다 강력한 class 기능) class 선언과 사용 class 선언&사용 : 기본 방법 class 키워드 사용 class 이름은 대문자 new 키워드를 이용하여 class를 통해 object를 생성할 수 있음 기본 property에 값을 할당하여 class를 만들고 object를 생성하면 기본 property가 초기값으로 설정되어 object가 만들어짐 class Per { name..
20210510 TypeSciprt 05, CompileOptions(strict 계열), Interface, Type alias TypeScript05 CompileOptions : strict 엄격하게 type check하는 옵션들을 전부다 킴 --noImplicitAny, --noImplicitThis, --strictNullChecks, --strictFunctionTypes, --strictPropertyInitialization, --strictBindCallApply, --alwaysStrict "strict": { "description": "Enable all strict type checking options.", "type": "boolean", "default": false, "markdownDescription": "Enable all strict type checking options. See more: h..
20210507 TypeSciprt 04 tsconfig schema, compileOnSave, extends, files, exclude, include, compileOptions(types, typeRoots, target, lib, outDir, outFile, rootDir) TypeScript04 tsconfig schema 각 option에 대한 설명 https://json.schemastore.org/tsconfig 최상위 프로퍼티 defintions을 기준으로 주로 사용하는 최상위 프로퍼티들 compileOnSave extends compileOptions : 어떤 식으로 컴파일 할 것인지에 대한 options files : 어떤 파일들을 컴파일 할 것인지에 대한 setting include exclude references compileOnSave file을 save하면 compile 하는 옵션(에디터에서 되는 설정이고 아무데서나 되는 것은 아님) true or false 값을 줄수 있고 default는 false 값 VS 2015 with ts 1.8.4 이상 또는..
20210506 TypeSciprt 03 타입시스템, TS의 타입 특성에 따른 옵션들, 나만의 타입 만드는법, 타입호완성(sub 타입, super타입), Type Aliase TypeScript03 타입 시스템 컴파일러에게 사용하는 타입을 명시적으로 지정하는 시스템 컴파일러가 자동으로 타입을 추론하는 시스템 타입스크립트의 타입 시스템 타입을 명시적으로 지정가능하고 지정하지 않으면, 타입스크립트 컴파일러가 자동으로 타입을 추론 형태를 정해둔 함수의 사용자와 구현자 타입이란 해당 변수가 할수 있는 일을 결정함 함수의 인자가 할 수 있는 일은 함수 인자의 타입이 결정함 const f1 = (a) => { return a; }; 함수 사용법에 대한 오해를 야기하는 JS 사용법을 알기 위해서는 구현자에게 물어보거나 함수가 어떻게 이루어져 있는지 뜯어봐야 앎 const f2 = (a) => { return a * 38; }; console.log(f2(10)); // 380 consol..
20210505 TypeSciprt 02 TS에서 활용하는 type(Object, Array, Tuple, Any, Unknown, Never, Void) TypeScript02 Object 일반적으로 실제 값을 갖는게 아닌 값을 가진 곳을 가르키는 정보를 가짐 TS에서 object는 다른 의미로 사용됨 object type는 primitive가 아닌 type이라고 함 즉, oject type primitive type object literal를 활용하여 만드는 경우 object가 아닌 object literal type임, 지정한 타입 그대로가 타입임 literal 모양으로 type을 표현 const person1 = { name: "Tom", age: 26 }; //person1 의 type은 object가 아님 // person1은 "{name: string, age: number}" 타입 임 Object 인 전역 내장 객체를 활용하여 만드는 경우 ..
20210504 TypeSciprt 01 개념, 설치 및 환경설정, 컴파일 방법, Type Annotation, 기본적인 type 6가지 ( + union type) TypeScript01 TypeScirpt는 타입을 추가시켜 JavaScript를 확장시킴 코드 실행전에 Error 잡거나, 수정하게 함으로써 시간을 줄여줌 어떤 실행 환경이든 간에 동작가능 (browser, nodejs 등) Programming 언어 이자 Compiled 언어(전통적인 complie과는 다름) 다른 언어와 다르게 Compile 이라는 용어를 TS(compiled 언어) -> 순수한 JS(interpreted 언어)로 변환시키는 것으로 사용 됨 (다른 말로는 Transpile 이라고도 함) 즉, TS를 editor에서 작성시켜서 바로 runtime할수 없기 때문에 compile 과정(TypeScript Compiler 가 변환)을 통해서 JS로 만들어서 Browser, Nodsjs에서 ..