본문 바로가기

Language/TypeScript5

타입스크립트 클래스 알아보기 타입스크립트의 클래스에 대해 정리해보도록 한다.공식문서의 클래스 파트를 참고했다. 자세한 설명이나 코드는 첨부된 공식문서를 참조하면 도움이 될 것이다.자바스크립트의 클래스와 가장 크게 다른점은 this 키워드에 속성을 할당하려면 필드를 선언해야 한다는 것이다.그런데 만약 수정자(접근 제어자)를 생성자의 매개변수 앞에 사용하는 경우, 필드 선언은 생략이 가능하다.이것을 후에 설명되는 “Parameter Properties”부른다.Class Members클래스의 멤버는 크게 2가지로 나뉜다.필드(Field): 클래스 내부에 선언된 변수(속성)이다. 일반적으로 객체의 상태를 저장한다.메서드(Method): 클래스 내부에 정의된 함수이다. 객체의 동작을 정의한다.Fields필드를 선언하면 기본적으로 public.. 2024. 9. 7.
typeORM으로 mysql 사용 시, JSON 타입 컬럼의 내부 데이터 활용하기 목적 엔티티를 구성할 때, 부가적인 정보들은 metadata라는 컬럼명으로 json 타입으로 구성하는 경우가 있습니다. 만약, typeORM을 사용하며 json 타입 내부 객체의 키벨류 값으로 조건문을 걸거나 값을 가져오는 등의 로직 구현에서 어려움을 겪었다면 이번 글이 관련 문제를 해결하는 데 도움이 되었으면 좋겠습니다. 이번 글에서는 mysql & typeORM & TypeScript 를 사용할 때, json 타입의 컬럼 내부의 정보를 활용하는 방법을 살펴볼 것입니다. 목차 - Entity 구성 - 1) typeORM find 옵션으로 이름 검색하기 - 2) typeORM find 옵션으로 json 내부 데이터 검색하기 - 3) typeORM 쿼리빌더로 json 내부 데이터를 활용하여 SUM 구하기 .. 2023. 4. 23.
[TS] 클래스 속성과 접근제어자 # JavaScript - TypeScript에서 this 사용을 위한 생성자 함수 구분 TS에서는 this를 통해 클래스의 속성에 접근하려면 초기화 필요 생성자 함수 밖에서 초기화 생성자 함수 안에서 초기화 - 매개변수에 접근제어자 설정 // 생성자 함수 외부에서 초기화 class ClassInTS1{ public name: string; constructor(name:string){ this.name = name } } // 생성자 함수 내부에서 초기화 class ClassInTS2{ constructor(public name:string){ this.name = name } } # 접근제어자(access modifiers) - 속성 접근제어자 구분 public - 클래스 외부에서 접근 가능 (def.. 2022. 11. 5.
interface optional 속성/ 매개변수 타입과 기본값/함수 오버로드와 매개변수 # interface optional 속성 interface에서 optional 속성은 뒤에 물음표를 붙인다. (price?) 타입으로 인터페이스를 설정했을 때, 선택적 속성은 없어도 오류가 발생하지 않는다. 해당 속성에는 undefined가 할당된다. interface CraftBeer { readonly name: string price?: number exist: boolean } let myBeer:CraftBeer = { name: 'hogarden', exist: true, } function callBeer(beer:CraftBeer){ console.log(beer.name) console.log(beer.exist) console.log(beer.price) } callBeer(myBee.. 2022. 10. 23.