0

有两个打字稿文件:

  • 一个实现类 Client 的模块

export class Client {
  • 导入模块并创建客户端数组的主文件

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

编译代码似乎工作正常。但是当我尝试使用 nodejs 运行生成的 javascript 时,它抱怨存在语法错误:

this.clients = new ();

在客户端也有打字稿代码。但是我没有使用模块,而是使用声明路径和 --out 编译器标志将所有内容编译到一个 .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[];
    }
}

我不确定为什么要编译这段代码,因为它实际上是一个语法错误。它不适合我。

您混合了两种不同的方式来声明一个数组:new Array()[]。只需将您的行更改为此,您应该一切顺利:

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