将包发布到NPM时,如何包含额外的Typescript声明?

时间:2016-10-28 16:03:57

标签: typescript

我正在编写将在NPM上发布的Typescript包,并且我想要包含一些自定义声明以及由Typescript编译器生成的主声明文件。但是,当我将我的包作为依赖项安装在另一个项目中时,Typescript只识别生成的声明文件,而不是我想要包含在项目中的额外文件。

例如,假设我的包被称为" my-package":

//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是在Typescript中编写的,并且作者希望包含所有采摘樱桃的函数的声明,以及主要的lodash声明文件:

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

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

是否可以在NPM包中包含我的自定义声明,并将Typescript与已编译的声明一起提取?

1 个答案:

答案 0 :(得分:0)

我能想到的最简单的方法是不使用" d.ts"来命名自定义声明文件。但请保持声明。

例如,尝试将my-interface.d.ts重命名为my-interface.ts。编译时,tsc将为您生成my-interface.d.ts,您应该可以在上游使用它。