2017-08-23 8 views
1

@ types/xxxリポジトリに存在しないか、無効な型がある場合があります。@ types/xxxリポジトリからのマージインタフェース

@ types/restifyは[key:string]:stringを追加する必要があります。サーバークラス/インターフェイスに追加します。

私がすることで、ファイル内のモジュールをインポートすると、私はコンテンツ

declare module 'restify' { 
    namespace restify { 
    inteface Server { 
     [key: string]: string; 
    } 
    } 
} 

でファイルに私のプロジェクトで自分のタイピングを作成するために、「restify.d.ts」を試してみました:

import { Server } from 'restify'; 

すべての定義されたタイプをby @ types/restifyは完全に消去され、コンパイラはそれらを認識しません。それはマージの代わりに、すべてを置き換えたようです。 プロジェクトの@types/...リポジトリで型をマージする方法はありますか?

EDIT:Ofc、長い視点から私はプルを送信しますが、今回はローカルの開発者を止めることができません - 私の場合は基本的に修正プログラムです。

+0

ちょっとしたメモ:長期的には、DefinitelyTypedの定義を更新する方がよいでしょう。https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/restify/index.d.ts so npmタイプのパッケージが更新されるようにします。 – Stephan

+0

現在の定義ファイルを@ types/xxxからプロジェクトにコピーして更新することができます。あなたが知っている限り、あなたは '{" compilerOptions ":{" paths ":{" restify ":[" ./path/to/index "]}}}' 'の場所を含むようにtsconfig.jsonを更新するだけです。 dts延長なし) – Stephan

答えて

0

最も簡単な方法は、@ types/restify d.tsファイルをローカルで直接編集することです。

さらに、@ types/restifyを参照するtriple slash directiveをd.tsファイルの先頭に追加してみてください。このpostに記載されているオプションを検討することもできます。

関連する問題