添加尚未拥有它的js库的自定义@types

时间:2016-11-01 00:58:05

标签: typescript typescript-typings typescript2.0

我们需要使用的一些库还没有return results定义。

如何在@types中创建和引用自定义@types,以便能够编译引用这些库的组件?

如果我创建一个custom.d.ts文件来定义我们需要的接口并在tsconfig.json文件部分列出该文件就足够了吗?

2 个答案:

答案 0 :(得分:1)

要创建新声明,您需要确保遵循TypeScript手册here声明文件部分中说明的最佳做法。

为了完成项目中的声明,您有两种选择:

  • 至" 包括"或" 文件"在你的tsconfig中。
  • 通过代码中的/// <reference path="" />声明。

答案 1 :(得分:1)

这就是我最终要做的事情。

对于jquery.spackline插件......

  1. 创建Scripts/@types/jquery-sparkline/index.d.ts
  2. index.d.ts构造函数定义为尽可能简单

    interface JQuery {     / **     *默认情况下,选项应作为第二个参数传递给sparkline函数     *     * @param数字值或空值     * @param选项     * /     sparkline(values:any,options:any):JQuery;

    /**
    * If values is undefined or set to 'html' then the data values are read from the specified tag:
    * <p>Sparkline: <span class="sparkline">1,4,6,6,8,5,3,5</span></p>
    */
    sparkline(): JQuery;
    
    /**
     * Otherwise values must be an array of numbers or null values
     *
     * @param values of numbers or null values
     */
    sparkline(values: any): JQuery;
    

    }

  3. Package.json

    &#34;脚本&#34;:{     &#34; postinstall&#34;:&#34; cpx \&#34; Scripts / @ types / ** / * \&#34; node_modules / @类型&#34 ;,     &#34; tsc&#34;:&#34; tsc&#34;,     &#34; tsc:w&#34;:&#34; tsc -w&#34;   }, .... ... &#34; devDependencies&#34;:{
        &#34;打字稿&#34;:&#34; ^ 2.0.6&#34;,     &#34; cpx&#34;:&#34; ~1.5.0&#34;   }

  4. 因此,在Scripts / @类型中,我将所有TypeScript声明文件放在不同的文件夹中(每个库一个)。 请注意Package.json配置:

    • 脚本 - &gt; &#34; postinstall&#34;:&#34; cpx \&#34; Scripts / @ types / ** / * \&#34; node_modules / @类型&#34;,
    • devDependencies - &gt; &#34; cpx&#34;:&#34; ~1.5.0&#34;

    如果TypeScript声明文件由图书馆的创建者发布,则可能不需要所有这些......我认为。