1

2 つの TypeScript ファイルA.tsTestA.ts.

A.ts

class A {
    constructor( private name : string ){}
    disp(){ console.log( this.name ); }
}

TestA.ts

/// <reference path="A.ts"/>
var a1 = new A( "Jun" );
a1.disp();
  • tsc TestA.ts
    わかった。A.js と TestA.js を作成します。

  • tsc TestA.ts -e
    NG。「RefenceError:Aは定義されていません」

  • tsc A.ts TestA.ts -e
    また、同じエラーが発生します

どこが間違っていますか?

4

2 に答える 2

4

/// <reference path="A.ts"/>コンパイル時に別のファイルの型を参照するためにのみ使用されます。このコンストラクトを使用すると、TypeScript はこれらの型が何らかの形で実行時に既に利用可能であると想定します。つまり、自分でロードする責任があります。

あなたがしたいことは、実行時に他のファイルを参照することです。これは、モジュールとimportandexportキーワードを使用して行われます。

これを試して:

A.ts

export class A {   
  constructor(private name : string ) {}
  disp() {
    console.log(this.name);
  }
}

TestA.ts

import a = module('./a');
var a1 = new a.A( "Jun" );
a1.disp();

次にtsc TestA.ts -e、コードをコンパイルして実行するために使用できます。

于 2012-10-04T14:52:46.503 に答える
1

コードに副次的なエラーがあります (")" がありません)。これはコンパイルします:

class A {   
  constructor(private name : string ) {}
  disp() {
    console.log(this.name);
  }
}

編集 :

最初の問題に関しては、最初のモジュールをエクスポートしてから、2 番目のファイルにインポートする必要があります。

コンパイラが require 関数呼び出し (CommonJS モジュールなど) を実装するため、実行できるようにするには、外部モジュール ローダー (RequireJS など) を使用する必要があります。

参照 :モジュールの読み込みは TypeScript でどのように機能しますか

A.ts

export class A {
  constructor(private name : string ){}
  disp() {
    console.log(this.name);
  }
}

TestA.js

var A = require("./A")
var a1 = new A.A("Jun");
a1.disp();
于 2012-10-04T14:06:10.070 に答える