2017-07-31 12 views
1

私はAngular2アプリを作成しています。その中に独自のタイピングファイルを持つ外部NPMパッケージを使用しています。問題は、入力ファイルが古くなっていることです。使用可能であり入力ファイルで宣言されていない関数がパッケージにあります。拡張モジュールTSタイピングをAngular2で

だから私は把握したい:

  1. 自分のタイピングファイルを定義し、それを書くためにどのように新しいメンバー
  2. で既存のインタフェースタイピングを拡張する方法Angular2
  3. によって認識取得する方法正しい方法で入力してください

私はグーグルを試みましたが、これらの3つの質問のいずれかの答えを把握できませんでした。私は.d.tsファイルを作成しましたが、Angular2に認識させる方法はわかりませんし、正しい構文もわかりません。

答えて

0

私はエディタで動作するようにそれを得たが、「NGビルド」を実行しているときに、見つけられません何らかの理由で角度-CLI:私は、具体的ContenfulClientAPIがhereを定義した拡張しようとしている

declare namespace ContentfulClientAPI { 
    export interface ContentfulClientApi { 
     parseEntries(data: any): any; 
    } 
} 

まだ新しい機能。 angle-cliは、何らかの理由で './src/typings.d.ts'ファイルの入力を認識するだけなので、angle-cliを使用している場合は、そのパスを 'typeRoots'に追加し、入力をそのファイル。

  1. まず、ファイルを.d.ts認識するエディタとコンパイラのために、あなたは「tsconfig.json」ファイルに「typeRoots」プロパティを編集する必要があります。このプロパティは、コンパイラ(およびエディタ)が入力を探す場所を指定します。デフォルトでは "node_modules/@ types"のみを調べますが、例えば "./typings"を追加することもできます。
  2. 指定した新しい場所で、新しい入力ファイル(例: 'contentful.d.ts')を作成し、内側に入力を作成します。正しい構文を理解するには、これらに従ってください:私にとってhttps://www.typescriptlang.org/docs/handbook/declaration-files/templates.html

を、最終的なタイピングファイルは次のようになります。

import * as contentful from 'contentful'; 

declare module 'contentful' { 
    export interface ContentfulClientApi { 
     parseEntries(data: any): any; 
    } 
} 
関連する問題