Programming/Typescript

Programming/Typescript

[Typescript] TypeScript의 모듈 파일과 전역 모듈의 차이점 및 예제

TypeScript는 자바스크립트에 정적 타입을 도입하여 코드의 안정성과 가독성을 높이게 된다. TypeScript를 사용하면 코드 구조화가 중요한데, 이에 관련하여 모듈 파일과 전역 모듈에 대해 설명하고자 한다. 예제 코드를 통해 이를 이해해보자. 1. 전역 모듈과 모듈 파일의 정의 TypeScript에서 파일은 기본적으로 다음 두 가지로 구분된다. 전역 모듈: 파일에 아무런 import나 export 문이 없는 경우, 해당 파일은 전역 모듈로 간주된다. 모듈 파일: 파일에 import나 export 문이 하나라도 있는 경우, 해당 파일은 모듈 파일로 간주된다. 2. 전역 모듈의 특징 및 예제 전역 모듈에서 정의된 요소들은 전역 범위에서 사용할 수 있다. 이 경우, 다른 파일에서 정의된 요소들을 명시적..

Programming/Typescript

[Typescript] typescript에서 enum을 반복하는 방법

typescript 환경에서 개발하던 도중 받은 값이 enum안에 존재하는지 확인해야 하는 일이 생겼다. enum을 반복해서 enum에 포함되는 값인지 확인해보자. enum 반복 아래와 같은 enum이 있다고 가정하자. enum Test { Zero = 0, One = 1, Two = 2, Three = 3 } typescript에서의 enum은 결국 javascript의 object로 변환이 된다. Object.keys와 Object.values로 값을 뽑을 수 있다. // 객체의 key를 뽑아낸 후 숫자로 형변환 한다. 그 후 문자열만 뽑는다. // keys = ['Zero','One','Two','Three'] const keys = Object.keys(Test).filter((v) => isNa..

Programming/Typescript

[Typescript] typescript에서 express의 request를 확장해서 사용하는 방법

express + typescript 환경 사용중에 express의 requset에 임의의 객체를 추가해야 하는 상황이 생겼다. request 객체를 확장해서 객체를 추가하고 타입도 추론되게 만들어보자. 환경 typescript: 4.4.3 express: 4.x Request 확장 typescript 환경에서 Express 사용시 Request는 아래와 같은 방식으로 확장할 수 있다. request 객체 안에서 사용될 객체를 아래 문법을 사용해서 app.ts 최상단에 선언한다. declare global { namespace Express { export interface Request { test?: string } } } 이제 Request안에서 test라는 커스텀 객체를 사용할 수 있다. 실제로 ..

Programming/Typescript

[Typescript] Typescript에서 class가 다중상속을 지원하지 않는 이유 (다이아몬드 문제)

만약 Typescript에서 class로 다중상속을 하려고 하면 에러가 발생한다. 예시를 통해서 확인해보자 아래와 같은 코드가 있다고 가정한다. class Test1 extends TestProblem { test() {} } class Test2 extends TestProblem { test() {} } // Error class Diamond extends Test1, Test2 {} 이렇게 2개 이상의 클래스를 상속받으려고 하면 에러가 난다. 다이아몬드 문제 왜 Typescript에서는 class의 다중상속을 막아두었을까? 조금 더 자세한 설명을 위해 다른 코드를 예시로 들어보자. class TestProblem { test(logString: string = 'TestProblem') { con..

얼은펭귄
'Programming/Typescript' 카테고리의 글 목록