私はタイコスクリプトの初心者です。私はいくつかの変更を加えるために既存のdurandalプロジェクトを取り上げています。このコードスニペットでランタイムエラーが発生しています。varを宣言しても定義されていないエラーが発生する
declare var routeLinks: IRouteLinks;
routeLinks = new RouteLinks();
export = routeLinks;
エラー=
私はしかし、問題は消え、コードが意図したとおりに動作しているようです(下記)declare
キーワードを削除するためにコードを変更Failed to load root module (ui/shell). Details: routeLinks is not defined(…)
。
var routeLinks: IRouteLinks;
routeLinks = new RouteLinks();
export = routeLinks;
このパターンは、多くの場所で、私は私が行くとdeclare
キーワードを削除し、それが問題を修正し、実行時例外を取得するたびに複製されます。
declare
キーワードはこの 問題を引き起こし、そしてなぜそれがそれを修正削除して含め、なぜ誰も説明できますか?declare
をこの文脈で最初に使用する可能性はありますか(可能であれば初心者の言葉で)?- このコードが以前に動作していた場合、どのように私の箱に来るのですか? (typescriptまたはdurandalのバージョン間の変更はおそらく?)
ありがとうございました。
情報
さらに私は、この行は、我々はdeclare
キーワード
var routeLinks;
を使用するときにエラーが今より理にかなって不足している参照コンパイル済みのJSを比較する際に、さらにこれにしてみますdeclare
を使用するとクロスコンパイラが変数宣言を削除するのはなぜですか?これは直感的ではないようです。
これは、ランタイムエラーの権利がありますか?編集したものではない? –
はい、実行時エラーです。 – gingerbreadboy
'declare'は変数' routeLinks'が既に他の場所で定義されていることを意味し、このコードスニペットをロードする前に環境にロードする必要があります。 'declare'を削除すると、実際に変数宣言がコンパイルされたjsに出力されます。私は物事をどのように読み込むかわからないので、より具体的に答えるのは難しいです。 –