본문 바로가기

TYPESCRIPT

(6)
타입스크립트: 유틸리티 타입 Partial 모든 속성을 ? 선택적으로 만들어줌 Partial interface INewType { name?: string, age?: number } 와 같은 효과 Required 반대. 위와 같은 속성을 필수로 변경(?를 없앰) Required Readonly type의 모든 속성을 읽기 전용으로 만듦 Readonly Record key를 속성으로 type을 그 속성 값의 타입으로 type TName = 'neo' | 'lewis'; const developers: Record = { neo: 12, lewis: 13 }; 같은 효과 interface INewType { neo: number, lewis: number } Pick type에서 key로 속성 선택 Pick interface IUse..
타입스크립트: 모듈 외부 자바스크립트 모듈을 타입스크립트로 가져올 때 lodash를 가져온다고 가정 검색 $ npm info @types/모듈이름 설치 $ npm i -D @types/lodash main.ts // main.ts import * as _ from 'lodash'; console.log(_.camelCase('import lodash module')); console.log(_.snakeCase('import lodash module')); console.log(_.kebabCase('import lodash module')); $ npx ts-node main.ts # importLodashModule # import_lodash_module # import-lodash-module 정상작동 확인 - 타입..
타입스크립트: 함수, 클래스 this const obj = { a: 'Hello~', b: function () { console.log(this.a); } }; this.a를 써서 할당하는 경우 에러 발생 obj.b(); // Hello~ const b = obj.b; b(); // Cannot read property 'a' of undefined function someFn(cb: any) { cb(); } someFn(obj.b); // Cannot read property 'a' of undefined setTimeout(obj.b, 100); // undefined 해결법 1. blind obj.b(); // Hello~ const b = obj.b.bind(obj); b(); // Hello~ function someF..
타입스크립트: 제네릭 제네릭(Generic) ❗️사용시점에 타입선언 하기 T라고 쓰면 된다 function toArray(a: T, b: T): T[] { return [a, b]; } 사용시점에 타입 확정 toArray(1, 2); toArray('1', '2'); toArray(1, '2'); toArray(1, '2'); // Error 인터페이스+제네릭 interface MyType { name: string, value: T } extends interface MyType { name: string, value: T } type+extends type U = string | number | boolean; // type 식별자 = 타입 구현 type MyType = string | T; // interface 식별자..
타입스크립트: 인터페이스 인터페이스(Interface) 인터페이스: 타입스크립트 여러 객체를 정의하는 일종의 규칙, 구조 interface IUser { name: string, age: number, isAdult: boolean } let user1: IUser = { name: 'Neo', age: 123, isAdult: true }; 인터페이스 사용시, 빠짐없이 모두 초기화 해줘야함. //Error - TS2741: Property 'isAdult' is missing in type '{ name: string; age: number; }' but required in type 'IUser'. let user2: IUser = { name: 'Evan', age: 456 }; +예외 선택적 속성(Optional prop..
타입스크립트 학습내용 정리 배열선언, 튜플선언 let fruits: string[] = ['Apple', 'Banana', 'Mango']; let fruits: Array = ['Apple', 'Banana', 'Mango']; let tuple: [string, number]; tuple = ['a', 1]; tuple = ['a', 1, 2]; // Error - TS2322 tuple = [1, 'a']; // Error - TS2322 타입선언 불리언 let isBoolean: boolean; let isDone: boolean = false; 배열(두가지 방법) let fruits: string[] = ['Apple', 'Banana', 'Mango']; let fruits: Array = ['Apple', 'Banan..