2016-10-04 70 views
2

我正在使用在DefinitelyTyped/DefinitelyTyped github repo中有声明的npm模块,但模块的类型不完整。如何扩展类型声明?

我已经提出了一个拉请求来获取缺失的声明,但是直到它被接受,我需要有一种方法来暂时扩展不完整的声明。

理想情况下,我希望能够在我的项目根目录中有一个temporaryTypings.d.ts文件,我可以为我遇到的每种情况添加声明。

回答

1

您可以安装非DefinitelyTyped源定义,就像你DT的叉:

# (this example is taken from https://www.npmjs.com/package/typings) 
# If you need a specific commit from github. 
$ typings install d3=github:DefinitelyTyped/DefinitelyTyped/d3/d3.d.ts#1c05872e7811235f43780b8b596bfd26fe8e7760 

npm因为打字稿2可以安装特定混帐回购协议模块为好。

+0

好主意,我将如何使用新的npm @types语法来做到这一点? – nhjk

+1

@nhjk'@ types/pkg'也是npm包。我想应该能够发布一个包含更新内容的非官方软件包,或者只需使用带有'npm-link'的本地npm软件包。 – Jokester

1

你可以在你的源文件中的任何地方总是有一些project.d.ts文件。

您可以从/// <reference path="path/to/project.d.ts" />tsconfig.json等某个入口点引用它,并在此处添加适合您的类型。

例如我的全局文件通常包括:

declare module "leftpad" { 
    var t : any; 
    export = t; 
} 

哪位帮我导入我的模块,而不require。定义文件可用后,您可以使用npm install @types/leftpad --save-dev进行安装,然后从global.d.ts文件中删除该模块声明。