Typescript library 확장하기

알론소·2020년 11월 19일
0

Typescript 라이브러리를 사용하다 보면 아주 가끔 다음과 같은 상황을 마주하게 된다.

  • type 추가 필요
  • 라이브러리에서 제공하는 type을 확장 필요

이런 경우, 어떻게 어떻게 해야 될까?

물론, 해당 라이브러리 소스 코드를 수정/추가 하여 PR를 요청할 수는 있다.

여기서 알아 볼 방법은 type을 수정/추가 하는 방법이다.

라이브러리 구성

foo 라이브러리의 type이 다음과 같이 정의되어 있다고 가정하자.

export interface Bar {
	someProperty: any;
	doSomething(doWhat: any): any;
	...
}

type 추가/수정

index.d.ts

다음 위치에 index.d.ts를 추가한다.
src/typings/foo-extension

------------------------------------------------------------------------------
index.d.ts
------------------------------------------------------------------------------
import 'foo';
declare module 'foo' {
	export interface bar {
		doSomethingExtended(doWhat: any): any;
	}
	export interface barExtension {
		someProperty: any;
		doSomethingSpecial(doWhat: any): any;
	}
}    

tsconfig.json

type 사용을 위해 tsconf.json을 수정해야 한다.

------------------------------------------------------------------------------
tsconfig.json
------------------------------------------------------------------------------
{
	"compilerOptions": {
		...
		"typeRoots": [
			...
			"src/typings"
		]
	},
	"include": [
		...
		"src/typings/*"
	],
	...
}

출처: stack-overflow

profile
주니어 개발자 탈출기

0개의 댓글