2016-09-06 9 views
0

ノードモジュール、mを書きます。後で、Typescriptの型を追加することにしました。幸いなことに、モジュールは、単一の関数をエクスポートするので、次のようにmdtsファイルは次のとおりです。npmモジュールにタイピングを追加する場合、どのようにグローバルタイピングに依存できますか?

/// <reference path="./typings/globals/node/index.d.ts" /> 

declare module "m" { 
    doThings(b: Buffer): int; 

    export = doThings; 
} 

My機能は、ノードのBufferを使用していますので、私はそれなしでインストールtypingsフォルダ内のノードタイピングへの有効な参照を(付属しました、サブライムは。すべてがよさそうだ、私は私のpackage.jsontypingsキーを更新してデプロイ)私は悪いことのように思える「の名前を見つけることができません 『バッファ』というメッセージを与える。

とは別に、私はモジュールmを使用しています別のタイスクリプトプロジェクトではpです。私はtypingsを使用することについて心配する必要はありません。私のモジュールにはタイプが含まれています。 を実行すると、次のエラーが表示されます。node_modules/m/m.d.ts(6,1): error TS6053: File '/Users/$USER/projects/p/node_modules/m/typings/globals/node/index.d.ts' not found.typingsフォルダーがnode_modulesにありません(私は落胆したようなフォルダーを生成したという印象を受けていました)。入力ファイルがDefinitelyTypedに読み込まれると、トリプルスラッシュのすべての参照が取り除かれます(best practicesでは、d.tsファイルに入力ファイルを含めないでください)。入力ファイルがnpmモジュールにロードされると、何も取り除かれません。

私のケーキを食べて食べることができますか?私のモジュール(m)に有効な入力があり、外部プロジェクトに壊れた参照を含まないことは可能ですか(p)?

ありがとうございました!

答えて

0

can I have my cake and eat it too? Is it possible to have valid typings in my module (m) while not including broken references in external projects (p)?

参考タグとしてnode.d.tsは含まれません。代わりに、人々がをコンパイルコンテキストに含める必要があると指定します。 tsconfig.jsonを使用します。

+0

それは私のモジュールでエラーが発生していることを意味しますか(それはバッファを知らないことに不平を言うでしょう)、それは問題ありませんか? – xavdid

+0

'それは私のモジュールでエラーが発生していることを意味します(バッファーを知らないと文句を言うでしょう)。あなたのプロジェクトには 'node.d.ts'もあり、tsconfig.json経由で含まれていなければなりません。 – basarat

+0

ああ、typescriptプロジェクトではなかったので、 'tsconfig'を含めないと思っていました。タイプ定義を持つjsプロジェクトです。ご協力いただきありがとうございます! – xavdid

関連する問題