Angular和Typescript:实例化复杂对象
问题描述:
我正在使用Angular,并且遇到了使用TypeScript语言的困难。我不确定TypeScript语法。Angular和Typescript:实例化复杂对象
我不明白为什么我创建这样一个对象:
export class MyClass {
isTrue: boolean;
complexObject: {
minValue: number;
stringValue: string;
};
MyClassString: string;
MyClassString2: string;
MyClassString3: string;
}
我创建一个MyClass的数组是这样的:
export const MYCLASS: MyClass[] = [
{
isTrue: false,
complexObject: {
minValue: 7,
stringValue: "hello"
},
MyClassString: "one",
MyClassString2: "two",
MyClassString3: "three"
}];
的角度编译器,使即使有错误在这段代码中没有语法错误。
如果我删除“complexObject”,一切正常。 如果我只用原始类型创建实例,则不会有错误。 如何创建复杂对象并将它们初始化为一个没有编译错误的数组?
只有在具有原始类型的情况下,才可以使用此语法实例化对象吗?
的错误是:对象文本只能指定已知特性,以及“complexObject”不存在类型存在“MyClass的”
答
我认为这将是如果您以这种方式申报班级,效果会更好:
export class ComplexType {
minValue: number;
stringValue: string;
}
export class MyClass {
isTrue: boolean;
complexObject: ComplexType;
myClassString: string;
myClassString2: string;
myClassString3: string;
}
MyClass是一个类,但您试图将其用作类型。 –
@claudioz如果我把你的代码放到[TS操场](http://www.typescriptlang.org/play/)中,我就不会出错。一些旧版本的TS有bug。如果您使用的是旧版本,则应升级。否则,您需要在您的问题中添加详细信息(通过*编辑*,而不是在其下面添加注释),以便人们可以重现您遇到的实际问题。 – Louis