解決とコンパイルを正しく行うためにファイル間で名前空間を取得する際に問題があります。 documentationこのSO answerによると、次は何の問題を生成してはならない:ファイル間でマージされたTypeScript名前空間
App.Core.ts
namespace App.Core {
export function createElem(tagName: string): JQuery {
return $(document.createElement(tagName));
}
}
App.Core.SubModule.tsしかし、Visual Studioが与えている
/// <reference path="App.Core.ts" />
namespace App.Core.SubModule {
export function Test(): JQuery {
return App.Core.createElem("div");
}
を私はの関数呼び出しでエラーが発生しましたProperty 'createElem' does not exist on type 'typeof Core'
私の理解では、名前空間が複数のファイルにまたがっている場合、TSコンパイラはそれらの名前空間を自動的に解決します。対応するJavaScriptが正しく出てきているように見えますが、インテリセンスの欠如(と赤い絡み目のエラーライン)は非常にイライラしていて、私が何を書いているのか推測してくれます。
これは私のファイル設定、TSコンパイラ、またはVisual Studio 2015の明らかに壊れているTypeScriptインテリセンス機能の問題ですか?
このコードはWebstormで正常にコンパイルされます。私は、結合された出力のファイルの順序が違いをもたらすと考えています。それを見てみましょう。とにかく、可能であれば、名前空間から離れ、外部モジュールを使用してください。これはあなたにこれらの頭痛の多くを保存します –
あなたの助言に従って、代わりに外部モジュールを使用しました。 Typescriptはまだ私にとっては非常に外国のアイデアです。 Typescriptの出力が 'require.js'のような他のリソースなしでブラウザで動かないことを認識するために、少し調べて掘り下げました。間違いなくTSドキュメンテーションでそれを解読して見つけるのは難しいことでした。しかし、助けてくれてありがとう!最後に、私のプロジェクトの次の部分に移動することができます! – Bwolfing