在Angular2中扩展模块TS打字

在Angular2中扩展模块TS打字,angular,typescript,typescript-typings,Angular,Typescript,Typescript Typings,我正在编写一个Angular2应用程序,其中我使用了一个外部NPM包,它有自己的打字文件。问题是typings文件已经过时-包中有可用的函数,但没有在typings文件中声明 所以我想弄清楚: 如何定义我自己的打字文件并让Angular2识别它 如何使用新成员扩展现有接口 如何用正确的方式写打字 我试过用谷歌搜索,但这三个问题都找不出答案。我的意思是我创建了一个.d.ts文件,但我不知道如何让Angular2识别它,而且我也不知道正确的语法 declare namespace Contentfu

我正在编写一个Angular2应用程序,其中我使用了一个外部NPM包,它有自己的打字文件。问题是typings文件已经过时-包中有可用的函数,但没有在typings文件中声明

所以我想弄清楚:

  • 如何定义我自己的打字文件并让Angular2识别它
  • 如何使用新成员扩展现有接口
  • 如何用正确的方式写打字
  • 我试过用谷歌搜索,但这三个问题都找不出答案。我的意思是我创建了一个.d.ts文件,但我不知道如何让Angular2识别它,而且我也不知道正确的语法

    declare namespace ContentfulClientAPI {
        export interface ContentfulClientApi {
            parseEntries(data: any): any;
        }
    }
    
    我特别尝试扩展ContenfulClientAPI定义:

    我让它在编辑器中工作,但在运行“ng build”时,angular cli由于某种原因仍然找不到新函数。由于某些原因,angular cli只能识别“./src/typings.d.ts”文件中的键入,因此如果使用angular cli,请将其路径添加到“typeRoots”中,并将键入放在该文件中

  • 首先,为了使编辑器和编译器能够识别.d.ts文件,您需要编辑'tsconfig.json'文件中的“typeRoots”属性。属性指定编译器(和编辑器)应在何处查找键入。默认情况下,它只在“node_modules/@types”中显示,但您可以另外添加“./typings”,例如
  • 在指定的新位置,创建一个新的打字文件,例如“contentful.d.ts”,并在内部创建打字。按照以下步骤找出正确的语法:
  • 对我来说,最终的打字文件如下所示:

    import * as contentful from 'contentful';
    
    declare module 'contentful' {
        export interface ContentfulClientApi {
            parseEntries(data: any): any;
        }
    }
    
    我让它在编辑器中工作,但在运行“ng build”时,angular cli由于某种原因仍然找不到新函数。由于某些原因,angular cli只能识别“./src/typings.d.ts”文件中的键入,因此如果使用angular cli,请将其路径添加到“typeRoots”中,并将键入放在该文件中

  • 首先,为了使编辑器和编译器能够识别.d.ts文件,您需要编辑'tsconfig.json'文件中的“typeRoots”属性。属性指定编译器(和编辑器)应在何处查找键入。默认情况下,它只在“node_modules/@types”中显示,但您可以另外添加“./typings”,例如
  • 在指定的新位置,创建一个新的打字文件,例如“contentful.d.ts”,并在内部创建打字。按照以下步骤找出正确的语法:
  • 对我来说,最终的打字文件如下所示:

    import * as contentful from 'contentful';
    
    declare module 'contentful' {
        export interface ContentfulClientApi {
            parseEntries(data: any): any;
        }
    }