🟨 JavaScript 🟨/🟦TypeScript🟦13 TypeScript - Utility Types 1. keyof interface User{ id:number name:string age:number gender:"M" | "F" } type UserKey = keyof User // "id" | "name" | "age" | "gender" const uk:UserKey = "id" const uk2:UserKey = "score" // 오류 발생 keyof를 이용해서 객체 타입의 모든 키를 문자열 또는 숫자 리터럴 유티온 타입으로 추출할 수 있게 해 준다. keyof 예시 1 객체의 키를 매개변수로 받는 함수를 정의할 때, 해당 객체 타입의 keyof를 이용하여 타입 안전성을 보장할 수 있다. interface Person { name: string age: number } type Person.. 2024. 2. 23. TypeScript - Generic 제네릭을 이용하면 class, function, interface를 다양한 타입으로 재사용할 수 있다. 선언할 때 파라미터만 적어두고 사용할 때 타입을 지정해 주는 방법이다. 기본적인 제네릭 사용 방법 function getSize(arr : number[]) :number { return arr.length } const arr1 = [1,2,3] getSize(arr1) // 3 const arr2 = ["1","2","3"] getSize(arr2) // 3 동일한 형태로 만들었지만 매개변수가 number이냐, string이냐 에 따라서 에러가 생기는 부분이 있을 것이다. 이걸 빠르게 해결하기 위해선 유니온을 이용한 방법 function getSize (arr: number[] | string [].. 2024. 2. 22. TypeScript - class (feat.예시코드) 접근 제한자 - public, private, protected 접근 제한자를 이용해서 class의 멤버의 접근 범위를 제한할 수 있다. 접근 제한자는 public, private, protected 3가지가 있다. 결론부터 말하자면 public : 어디서나 접근이 가능하다. public으로 지정하거나 아무것도 지정하지 않으면 기본적으로 public이다. private : 해당 클래스의 내부에서만 접근이 가능하다. 상속을 하더라도 접근할 수 없다. protected : 해당 클래스, 파생된 클래스 내부에서만 접근이 가능하다. (인스턴스에서 접근이 불가능) 1. public class Car { color : string; public wheel : number; constructor( color : st.. 2024. 2. 22. TypeScript - function this interface User{ name:string; } const Sam:User = { name:'Sam' } function showName(this:User, age:number, gender:'m'|'f') { // this를 사용하기 위해서 매개변수에 this와 this의 타입을 지정한다. console.log(this.name, age, gender) } const a = showName.bind(Sam); a(30, 'm') this를 Sam으로 바인딩하고 this를 사용하기 위해서 Sam의 타입과 같은 User로 명시해 준다. 이렇게 하면 this를 이용할 수 있다. 함수의 첫 번째 매개변수로 'this' 타입을 지정하는 것은 'this'의 컨텍스트를 명시적으로 선언하는 방법이다... 2024. 2. 22. TypeScript - interface index signature Index Signature은 객체의 속성 이름과 타입이 미리 정의되어 있지 않을 때, 객체에 동적으로 속성을 추가할 수 있는 방법을 제공한다. 기본형태 interface Obj{ [key : T] : U } // T : 인덱스의 타입 (대부분 string 이나 number) // U : 값의 타입 사용 예시 type Score = "A" | "B" | "C" interface User { name: string age: number [grade: number]: Score } let user: User = { name: "xx", age: 30, 1: "A", 2: "B", } index signature를 사용하면 타입 체크 시 유연성이 증가하지만, 해당 객체의 명확한 구.. 2024. 2. 22. Jest를 이용한 TDD(Test-Driven Development) 목차 1. TDD 2. Jest 3. Jest 사용하기 4. Jest Syntax 5. Mock Function 1. TDD (Test-Driven Development) TDD는 Test-Driven Development로 소프트웨어 개발방법론 중 하나로 실제 코드를 작성하기 전에 테스트를 먼저 작성하는 방법이다. 테스트 코드를 통한 실패하는 코드(에러코드)를 작성하고 하나씩 고쳐나가면서 개발하는 과정을 거친다. 테스트는 메서드 또는 class처럼 작은 단위로 진행한다. 테스트에 통과되는 코드만 실제 코드로 작성한다. TDD를 이용하여 개발을 진행하게 되면 오류나 문제점을 미리 예방할 수 있어 프로젝트의 안정성과 신뢰성을 높일 수 있다. 작은 단위로 진행하면서 작성하기 때문에 코드의 유지보수가 용이해진.. 2023. 4. 24. 이전 1 2 3 다음 728x90