본문 바로가기

TypeScript

(19)
타입스크립트 제너릭 과 인터페이스 응용 Generic과 Interface Generic의 제약 조건 및 Interface 확장을 이용해 풀 수 있는 문제입니다. 문제에서 Player 클래스의 인스턴스를 생성하고, 메소드를 호출하는 부분을 살펴보겠습니다. const player = new Player(); player.openFile({title: '타입스크립트', runningTime: 60, extention: 'MPEG'}); player.play(); player 객체에 Generic으로 IVideo를 넘겨주고 있는 것을 볼 수 있습니다. 하지만 작성되어 있는 코드에서는 Player 클래스의 Generic에서 string을 사용하도록 제약 조건이 걸려있어, 이를 IVideo로 수정합니다. class Player { ... 그리고 IVid..
타입스크립트 추상 클래스 사용법. 추상 클래스 (템플릿 메소드 패턴) 추상 클래스를 이용해 템플릿 메소드 패턴을 구현해 보는 문제입니다. 주어진 코드를 살펴보면, study() 메소드를 가지는 Student 추상 클래스와 각각 다른 기능을 하는 takeABreak() 메소드를 가지고 있는 Alice, June, Chloe 클래스가 있습니다. 먼저 각 학생에 대한 클래스에 Student 클래스를 상속합니다. Alice를 예로 들면 아래와 같습니다. class Alice extends Student { takeABreak() : void { console.log("잠자며 휴식!"); } } 이제 Alice 객체를 생성하여 study() 메소드를 호출하여 아래와 같은 결과를 얻을 수 있습니다. 공부 시작! 공부 종료! 실행 결과와 동일한 동작..
타입스크립트 함수의 오버로딩. 함수 오버로딩 함수 오버로딩을 사용해 하나의 함수명으로 여러 개의 인자를 처리하는 문제입니다. 먼저 다양한 인자를 가지는 함수를 모두 선언합니다. number 타입의 인자를 두 개 받아 number 타입을 반환하는 함수와, 인자를 세 개 받아 number 타입을 반환하는 함수를 각각 선언합니다. function add(a: number, b: number): number; function add(a: number, b: number, c: number): number; 선언한 모든 함수에 공통적으로 적용할 수 있는 함수를 구현합니다. number 타입의 매개변수를 두 개 또는 세 개 입력받기 때문에 두 개의 일반 매개변수와 한 개의 선택적 매개변수를 설정합니다. 세 번째 매개변수가 존재한다면 a에 b를 ..
타입스크립트 제너릭 & 인터페이스 응용 사용법 interface Car { drive(): void park(): void } // Bus 클래스와 Taxi 클래스를 생성하세요. class Bus implements Car { drive(): void { } park(): void { console.log('버스 주차') } } class Taxi implements Car { drive(): void { } park(): void { console.log('택시 주차') } } // Factory pattern을 적용하기 위한 서브 클래스입니다. class CarFactory { static getInstance(type: { new(): T }): T { return new type() } } // CarFactory 클래스의 getInstanc..
타입스크립트 interface란?? Interface 1. Interface란? 인터페이스(Interface)란 코드 내 계약(약속, 규칙)을 정의하는 강력한 방법입니다. 인터페이스는 일반적으로 변수, 함수, 클래스의 타입을 체크하기 위해 사용됩니다. 예를 들면 아래 elice 변수는 Person 인터페이스의 계약을 준수해야만 합니다. interface Person { name: string, age: number } let elice: Person = {name: "rabbit", age: 13}; 앞서 살펴보았던 타입을 정의하는 type alias에 대해 기억하시나요? type Human = { name: string; age: number; }; type alias는 인터페이스와 비슷한 역할을 하지만, type alias는 확장(ex..
class 객체지향 프로그래밍 oop Class 1. 객체 지향 프로그래밍(OOP) OOP란 Object-oriented programming의 준말로 컴퓨터 프로그램을 객체의 모임으로 파악하려는 프로그래밍 패러다임입니다. 프로그래밍을 객체 단위로 나눠서 작성하는 것으로, 예를 들어 사람을 하나의 객체라고 한다면 사람을 구성하는 뇌부터 눈, 코, 입, 귀, 팔, 다리 등을 각각 나눠서 관리하고 서로 상호작용하여 결국 사람이 밥을 먹거나, 코딩을 하는 등의 동작을 하도록 만드는 것입니다. 이렇게 OOP를 적용하면 프로그램을 변경하고 싶거나, 오류를 해결할 때 모든 구조를 뜯어 고치지 않고 문제가 되는 객체만 들여다 보면 됩니다. 즉 프로그램이 유연하고 변경이 용이하며, 개발과 보수가 간편한 이점이 있습니다. 잘 나누어진 객체는 직관적인 코드 ..
체인블록 만들면서 알아보기. import * as crypto from "crypto"; interface BlockShape{ hash:string; prevHash:string; height:number; data:string; } class Block implements BlockShape { public hash:string; constructor( public prevHash:string, public height: number, public data: string ){ console.log(`Creating block with height ${height}${data}`); this.hash = Block.calculateHashs(prevHash,height,data); } static calculateHashs(pre..
vsc 타입스크립트 환경설정방법 https://nomadcoders.co/typescript-for-beginners/lectures/3685 All Courses – 노마드 코더 Nomad Coders 초급부터 고급까지! 니꼬쌤과 함께 풀스택으로 성장하세요! nomadcoders.co 링크 참고 -터미널 npm i -D ts-node 설치없이 빌드없이 타입스크립트를 실행할수있게해줌 npm i nodemon 자동으로 커맨드를 재실행해준다. https://nomadcoders.co/typescript-for-beginners/lectures/3689 All Courses – 노마드 코더 Nomad Coders 초급부터 고급까지! 니꼬쌤과 함께 풀스택으로 성장하세요! nomadcoders.co 영상 참고 콘피그 수정해줘야한다. 터미널에서 ..