具有对象初始化器的TypeScript数组初始化器

时间:2016-08-11 08:30:57

标签: arrays typescript

在TypeScript 1.8中,以下由初始化程序组成的代码块是否为合法语法是否有任何理由:

Product Detail Page

...但是下面的代码块不是?

class A
{
    public textField: string;
}

var instanceOfClass = new A
{
    textField = "HELLO WORLD"
};

var arrayCollection = new A[]
{
    new A(), new A()
};

TypeScript允许您初始化数组和对象似乎很奇怪,但您无法在数组初始化器中嵌套对象初始化器。

1 个答案:

答案 0 :(得分:0)

这不是有效的打字稿语法:

class A {
    public textField: string;
}

var instanceOfClass = new A {
    textField = "HELLO WORLD"
};

编译器抱怨:

  

找不到姓名' textField'

如果要在实例化时设置成员值,则只需将其作为构造函数参数传递:

class A {
    public textField: string;

    constructor(textField: string) {
        this.textField = textField;
    }
}

var instanceOfClass = new A("HELLO WORLD");

或简短版本:

class A {
    constructor(public textField: string) {
        this.textField = textField;
    }
}