0

2つのtypescriptファイルがあります:

  • クラスClientを実装するモジュール

export class Client {
  • モジュールをインポートしてクライアントの配列を作成するメインファイル

import c = module("client")
//...
class Server {
    constructor() {
        this.clients = new c.Client[];

コードのコンパイルは正常に機能しているようです。しかし、生成されたjavascriptをnodejsで実行しようとすると、構文エラーがあると文句を言います。

this.clients = new ();

クライアント側には、typescriptコードもあります。ただし、モジュールの代わりに、宣言パスと--outコンパイラフラグを使用して、すべてを1つの.jsファイルにコンパイルしています。クライアント側のコードの配列は問題なく作成されます。javascriptには

this.arr = new Array();

したがって、明らかにコンパイラは、配列がで作成されることを指定することを追加するのを忘れていましたnew()。足りない部分を挿入するだけで手動でエラーを修正しました。しかし、コードに小さな変更を加えて新しいコンパイルを行った後、同じ問題が再び発生しました。私はtypescriptバージョン0.8.3を使用しており、npm経由でインストールしています。私に何ができる ?

4

1 に答える 1

3

クラスServerは、クライアントをc.Clientオブジェクトの配列として定義していると想定しているため、実際には次のようになります。

class Server {
    clients: c.Client[];
    constructor() {
        this.clients = new c.Client[];
    }
}

実際には構文エラーであるため、このコードがコンパイルされた理由はわかりません。それは私のためにコンパイルされません。

配列を宣言する2つの異なる方法、new Array()[]を混同しました。行をこれに変更するだけで、準備が整います。

this.clients = [];
于 2013-03-06T16:38:02.333 に答える