2017-12-27 28 views
0

foo/bar.jsの中にNode JSモジュールを持つプロジェクトがあります。今私はfoo/bar.jsをインポートするsrc/mymod.tsにタイプスクリプトモジュールを書いています。 foo/bar.jsモジュールの宣言ファイルを作成するにはどうすればよいですか?宣言ファイルはどこに置くべきですか?ネストされたモジュールの宣言ファイル

私はfoo/bar.d.tsで宣言ファイルを配置しようとしたけど、私の活字体モジュールでimport * as bar from "../foo/bar"、私は次のエラーを取得するとき:

File '/tmp/my_proj/foo/bar.d.ts' is not a module. 

これは私のtsconfig.jsonファイル

{ 
    "compilerOptions": { 
    "allowJs": true, 
    "outDir": "./dist/", 
    "target": "es2017", 
    "module": "commonjs", 
    "strictNullChecks": true 
    }, 
    "include": [ 
    "./src/" 
    ] 
} 

これはあります私の宣言ファイル:

// Type definitions for bar 
declare module "bar" { 
    function fun1(n: number) : number; 
    function fun2(n: number) : number; 
    function fun3(n: number) : number; 
} 
+0

'bar.d.ts'が正しく宣言されていないように見えますが、' export'ステートメントがないとエラーを説明するモジュールではありません。あなたの質問にそのファイルを追加することができます。 – Gerrit0

+0

@ Gerrit0は宣言ファイルを追加するのを忘れていました。今すぐ追加されました –

+0

@ Gerrit0したがって、私はこの問題を 'module'構造体を削除し、関数に' export'を追加することで解決しました(私は実際にいくつかの関数を持っています)。モジュールが自動的にエクスポートされたと思いましたか? –

答えて

1

p私は、次の宣言ファイルを変更した場合roblemが固定されている:

export function fun1(n: number) : number; 
export function fun2(n: number) : number; 
export function fun3(n: number) : number; 

私はGerrit0さんのコメント@読んだとき、私はこの解決策を考え出したしました。誰かが説明でより良い答えを書くことができるなら、私は答えを変えるでしょう。

関連する問題