2016-10-28 67 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"其導入使用該聲明在整個原包裝沒有任何問題。問題是Typescript無法找到"my-package/interfaces"當程序包作爲依賴項安裝在另一個項目中時。它只知道"my-package",即使自定義聲明包含在包中,甚至當它們從編譯聲明中引用時也是如此。

作爲一個真實的例子,假設lodash寫在打字稿和筆者希望包括申報所有的櫻桃採摘功能,主要lodash聲明文件一起:

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

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

是有可能將我的自定義聲明包含在NPM包中,並使Typescript將它們與編譯聲明一起提取?

回答

0

我能想到的最簡單的方法是不使用「d.ts」來命名您的自定義聲明文件,而只是將其保留爲聲明。

例如,嘗試將my-interface.d.ts重命名爲my-interface.ts。當你編譯tsc時會爲你生成my-interface.d.ts,你應該可以在上游使用它。