23

TypeScriptについて頭を悩ませようとしているだけです。

animals.ts次のようなモジュールがあるとします。

export module Animals {

    export interface Animal {
        name(): void;
    }

    export class Elephant implements Animal {

        constructor() {

        } 

        public name() {
            console.log("Elephant");
        }
    }

    export class Horse implements Animal {

        constructor() {

        }

        public name() {
            console.log("Horse");
        }
    }
}

そして、このモジュールを別のファイルで使用したいanimals_panel.ts:

import animals = require("animals")

module AnimalPanel {

    var animal = new animals.Animals.Elephant();
    animal.name();
}
  1. を使用しなければならないのは少し奇妙に思えますがanimals.Animals.Elephant()、予想していたでしょうAnimals.Elephant()。私は何か間違ったことをしていますか、それともこれは正しい行動ですか?
  2. import animals = require("animals")モジュール内にインポートすることは可能AnimalPanelですか (これを行おうとするとエラーが発生します)?
4

2 に答える 2

2

2 種類の構文を使用できますexport/import

  1. (AMD スタイル) RequireES5 でサポートされている構文:

    var animals = require("animals");

  2. importES6 からサポートを開始した使用スタイル:

    import { Elephant, Horse } from "animals";

TypeScript は、従来のワークフローexport =をモデル化することをサポートしています。したがって、両方のバリアントが機能します。より強力なメカニズムであるため、2nd を使用することをお勧めします。CommonJSAMD

詳細については、公式の TypeScript モジュール Web ページを参照してください。

于 2016-07-23T05:33:32.797 に答える