2016-10-28 3 views
0

NPM에 게시 될 Typescript 패키지를 작성 중이며 Typescript 컴파일러에서 생성 한 기본 선언 파일과 함께 사용자 지정 선언을 포함하고 싶습니다. 그러나 내 프로젝트를 다른 프로젝트에 종속물로 설치하면 Typescript는 생성 된 선언 파일 만 인식하며 프로젝트에 포함하려는 추가 파일은 인식하지 않습니다.패키지를 NPM에 게시 할 때 추가 Typescript 선언을 어떻게 포함합니까?

는 예를 들어, 내 패키지를 가정하는 것은 "내 패키지"라고합니다 :

//In typings/my-interface.d.ts 

declare module "my-package/interfaces" { 
    export interface MyInterface { ... } 
} 

내가 import { MyInterface } from "my-package/interfaces" 그것을 가져 아무 문제없이 원래 패키지를 통해 그 선언을 사용할 수 있습니다. 문제는 패키지가 다른 프로젝트의 종속물로 설치 될 때 "my-package/interfaces"을 찾을 수 없다는 것입니다. 커스텀 선언이 패키지에 포함되어있을 때조차도 컴파일 된 선언에서 참조 될 때에도 "my-package"에 대해서만 알고 있습니다.

declare module "lodash/some" { 
    export function ... 
} 

declare module "lodash/forOwn" { 
    export function ... 
} 

인가 : 실제 예를 들어

lodash은 타이프 라이터로 작성되었으며 저자가 주요 lodash 선언 파일과 함께, 벚꽃 고른 모든 기능에 대한 선언을 포함하고 싶어한다고 가정 내 사용자 지정 선언을 NPM 패키지에 포함시키고 Typescript를 컴파일 된 선언과 함께 선택하게 할 수 있습니까?

답변

0

제가 생각할 수있는 가장 쉬운 방법은 "d.ts"를 사용하여 사용자 정의 선언 파일의 이름을 지정하지 않고 선언문 만 유지하는 것입니다.

예를 들어 my-interface.d.ts의 이름을 my-interface.ts으로 변경하십시오. 컴파일 할 때 tsc는 my-interface.d.ts을 생성 할 것이므로 업스트림으로 사용할 수 있어야합니다.

관련 문제