この質問は、タイプスクリプトがモジュールのインポートに失敗するのはなぜですか? 、昨日尋ねました。初期設定は同じです。
次のような単純な 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' の後にあります。
ここで何が起きてるの?