2016-10-28 115 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,你应该可以在上游使用它。