5

AMD に適した TypeScript アプリケーション スケルトンをまとめようとして、問題が発生しました。現在のパスからドロップダウンして、別のディレクトリにモジュールをインポートすることができないようです。上にあるモジュールをインポートできますが、下にあるとエラーがスローされます。

TypeScript Error: The name ''../core/View'' does not exist in the current scope

これが私の(非常に基本的な)アプリの構造です:

app/
 - core/
    - View.ts
 - views/
    - HomeView.ts
 - Application.ts

私のApplication.tsファイルでは、次のようにモジュールを正常にインポートできます。

import HomeView = module( 'views/HomeView' );

export class Application {
    constructor() {
        console.log( 'initializing Application' );
    }
}

--module AMD フラグを使用すると、正しく出力されるもの

define(["require", "exports", 'views/HomeView'], function(require, exports, __HomeView__) {
    var HomeView = __HomeView__;

    var Application = (function () {
        function Application() {
            console.log('initializing Application', HomeView);
        }
        return Application;
    })();
    exports.Application = Application;    
})

さて、問題は、 BaseClass に飛び込んで、拡張するviews/HomeView.jsためにインポートしようとしたときです。core/View

import View = module('../core/View');

export class HomeView {
    constructor() {
        console.log('Hello HomeView!');
    }
}

この完全なエラーがスローされます:

TypeScript Error: The name ''../core/View'' does not exist in the current scope
File: test/src/app/views/HomeView.ts
Start: 21, Length: 14

Line: import View = module('../core/View');
---------------------------^^^^^^^^^^^^^^--

これはコンパイラのバグですか、それともモジュールのインポートに関する私の理解が間違っていますか? をインポートできるviews/HomeViewのにできないのはなぜ../core/Viewですか?

どんな助けでも大歓迎です。

4

1 に答える 1

5

ルートパスを使用してこれを機能させることができましたが、相対パスが機能しない理由はわかりません。

import view = module("./app/core/View");
于 2012-11-27T09:39:40.050 に答える