1

この質問は、タイプスクリプトがモジュールのインポートに失敗するのはなぜですか? 、昨日尋ねました。初期設定は同じです。

次のような単純な typescript ファイルがあります。

/// <reference path="./typings/js-yaml/js-yaml.d.ts"/>
'use strict';
import * as y from 'js-yaml';
console.log(y);

このようにコンパイルするとtsc --module commonjs file.ts、typescript は満足です。

しかし、 /// 参照を「use strict」の下に移動すると、次のようになります。

'use strict';
/// <reference path="./typings/js-yaml/js-yaml.d.ts"/>
import * as y from 'js-yaml';
console.log(y);

タイプスクリプトは満足していません:

$ tsc --module commonjs file.ts 
file.ts(4,20): error TS2307: Cannot find module 'js-yaml'.

Typescript は実際にコンパイルされたファイルを出力し、最初に出力されたものと同じですが、もちろん /// 参照は 2 番目のケースで 'use strict' の後にあります。

ここで何が起きてるの?

4

3 に答える 3

4

MSDNから、

次の規則は、参照ディレクティブに適用されます。参照 XML コメントは、スクリプトの前に宣言する必要があります。

これが理由かもしれません。

于 2016-02-11T19:58:05.407 に答える
1

<reference>TypeScript仕様にタグに関する注意事項があります。

ソース ファイルの最初のトークンの前にある形式のコメントは/// <reference path="…"/>、パス引数で指定されたソース ファイルに依存関係を追加します。パスは、含まれているソース ファイルのディレクトリに対して相対的に解決されます。

于 2016-02-11T20:07:31.420 に答える