TypeScript
Typescript Generic programing
Typescript Generic programing
2021.11.29제너릭 이란? 제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. const names = ["jongyun", "minsoo"]; typescript의 타입 추론은 names의 타입이 string []이라고 말해준다. string []이라는 타입은 사실 array 타입과 string 타입이 합쳐진 것이다. const names2: Array = []; names2[0].split(""); // Not error 꺽쇠를 사용하여 타입을 명시할 수 있는데 이게 바로 제너릭이다. Array 문자열 배열 타입이라고 명시하여 split 메서드를 사용하여도 에러가 발생하지 않는다. javascript 에도 존재하는 promise를 예로 보자. const promise..
Advanced Typescript 2
Advanced Typescript 2
2021.11.29Index Type 좀 더 유연한 설계를 위해서 interface를 만들 때 key 값을 런타임 환경에서만 알 수 있을 때 대처하기 위해서 index type을 사용 // { email: 'Not a valid email', username: 'Must start with a charcter!' } interface ErrorContainer { [prop: string]: string; } const errorBag: ErrorContainer = { error: "Not a valid email", username: "Must start with a charcter!", }; error tag 를 key로 가지고 error message를 value로 가지는 interface type을 만들고 싶다...
Advanced Typescript - 타입스크립트 좀더 깊게 알아보기
Advanced Typescript - 타입스크립트 좀더 깊게 알아보기
2021.11.28Intersection Type (교차 타입) type Admin = { name: string; privileges: string[]; }; type Employee = { name: string; startDate: Date; }; type ElevatedEmployee = Admin & Employee; const e1: ElevatedEmployee = { name: 'Max', privileges: ['create-server'], startDate: new Date() }; type Combinable = string | number; type Numeric = number | boolean; type Universal = Combinable & Numeric; const u: Universa..
Typescript Interface
Typescript Interface
2021.11.28Interface 가 필요한 이유 type과 interface의 차이점은 인터페이스는 개체의 구조를 설명하는데만 사용할 수 있다는 것 실제로 객체 유형을 정의 할때 인터페이스를 더 자주 보게 됩니다. interface Greetable{ name: string; greet(phrase: string): void; } class Person implements Greetable{ name: string; age: number = 27; constructor(name: string) { this.name = name; } greet(phrase: string) { console.log(phrase + ' ' + this.name); } } let user1: Greetable; user1 = new Pers..
Typescript Class
Typescript Class
2021.11.27stShorthand Initialization typescript에서 class의 생성자를 좀 더 짧게 생성하는 법을 알아보겠습니다. Origin class Department { private id: string; public name: string; constructor(id: string, name: string) { this.id = id; this.name = name; } } Short class Department { constructor(private id: string, public name: string) { } describe() { console.log(`Department (${this.id}): ${this.name}`); } } constructro 파라미터에 private ..
typeorm database migration
typeorm database migration
2021.06.24기존의 database migration 하기 npm i typeorm-model-generator -D 라이브러리를 설치합니다. npx typeorm-modelgenerator -h localhost -d (db_name) -u root -x (password) -e mysql -h : host 를 의미 -d : database 이름 -u : user 이름 -x : password -e : engine 이렇게 하게되면 output 폴더가 생성됩니다. entities 폴더는 src 폴더 안으로 옮기고 config.json은 추후에 필요할지도 모르니 남겨놓을게요 mysql 의 이런설정들이 entitiy 폴더로 그대로 옮겨 오게 됩니다. 이와 반대로 entitiy 에서 정의한후 database로 생성하는 것..
Nestjs 에서 Swagger 사용하기
Nestjs 에서 Swagger 사용하기
2021.06.24generate swagger ui npm install --save @nestjs/swagger swagger-ui-express main.ts 에 다음과 같이 작성합니다. import { NestFactory } from '@nestjs/core'; import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; import { AppModule } from './app.module'; // nsetjs hot reloading setup declare const module: any; async function bootstrap() { const app = await NestFactory.create(AppModule); const config ..
Nest js implements, injectable(DI) 알아보기
Nest js implements, injectable(DI) 알아보기
2021.06.24typescript implements import { AppController } from './app.controller'; import { AppService } from './app.service'; import { ConfigModule } from '@nestjs/config'; import { LoggerMiddleware } from './middlewares/logger.middleware'; @Module({ imports: [ConfigModule.forRoot({})], // module 을 불러왔으면 추가를 해줘야함 controllers: [AppController], providers: [AppService], }) export class AppModule implements N..
타입 스크립트 프로젝트 만들기
타입 스크립트 프로젝트 만들기
2020.12.09타입 스크립트 dir 를 선택합니다. vsCode 의 터미널에서 다음 명령을 차례대로 실행합니다. mkdir "filename" cd "filename" npm init --y package.json 은 node.js 가 관리하는 패키지 관리 파일로서 프로젝트 정보와 관련 패키지가 기록됩니다. 다른 개발자의 컴퓨터에 typescript와 ts-node 패키지가 설치되어 있지 않을 수도 있기에 이를 고려해 --> npm i -D typescipt ts-node package.json 에 등록합니다. Promise와 같은 타입을 사용하려면 @types/node 라는 패키지를 설치해야 합니다. --> npm i -D @types/node tsconfig.json 파일 만들기 --> tsc -- init jso..