2016-04-09 20 views
2

私はこのファイルを持っていました。私はこれを試したTypJSはCommonJSモジュールをインポートできますか?だから、私は私の活字体ファイルにインポートしたい</p> <pre><code>//foo.js var foo = function() { return "foo"; }; module.exports = foo; </code></pre> <p>:

//typescript.ts 
import * as foo from ("./foo"); 

うまくいかなかった。私はこの「周囲」のモジュールについて読むので、私はこの

//typescript.ts 
/// <reference path="./foo.d.ts" /> 
import * as foo from ("./foo"); 

を追加しましたそして私はtypescriptですが、私のタイプについて知らせることを目的としていた同じフォルダ内に「foo.d.ts」ファイルを追加しましたインポート機能:

declare module "foo" 
{ 
    function foo(): string 
    export = foo; 
} 

いいえ運があります。

私は、インポートの構文に問題があると考えました(es6とcommonjsモジュールでは同じ構文を使用できません)。だから私はこれをやった。

import foo = require("./foo"); 

あなたが推測したように、それはどちらもうまくいかなかった。

npm install d3のノードモジュールとしてインストールしたときにd3を正常に使用でき、d.tsというファイルを参照できました。私はこのコードでそれをやった:私は他のモジュールと同じことを行うことができていない

import * as d3 from "d3"; 

(jqueryの、BOX2D、BOX2D-commonjs、とりわけ)、また私自身のライブラリで上記実証されたように。私はTypescriptを初めて使っているので、おそらく私は何か非常に明白なものを見逃していますが、自分でそれを理解することはできませんでした。

+0

'' ./foo "'の代わりに '' ./foo.js "'として指定してみましたか? – TAGraves

+0

はい。上記のすべてで。 – Federico

答えて

1

それは本当に明白でした:あなたは--allowJsオプションを使用しなければなりませんでした。これは私のために働いた:

tsc --moduleResolution "node" --module "commonjs" --allowJs main.ts 

しかし、私はまだ他のライブラリがしなかった間d3が働いた理由を把握することはできません。