Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度和类型脚本:实例化复杂对象_Javascript_Json_Angular_Typescript - Fatal编程技术网

Javascript 角度和类型脚本:实例化复杂对象

Javascript 角度和类型脚本:实例化复杂对象,javascript,json,angular,typescript,Javascript,Json,Angular,Typescript,我在Angular公司工作,在打字时遇到了一个困难。我不确定TypeScript的语法 我不明白为什么要创建这样的对象: export class MyClass { isTrue: boolean; complexObject: { minValue: number; stringValue: string; }; MyClassString: string; MyClassString2: string; MyClassString3: stri

我在Angular公司工作,在打字时遇到了一个困难。我不确定TypeScript的语法

我不明白为什么要创建这样的对象:

export class MyClass {

  isTrue: boolean;

  complexObject: {
    minValue: number;
    stringValue: string;
  };

  MyClassString: string;
  MyClassString2: string;
  MyClassString3: string;

}
export const MYCLASS: MyClass[] = [
{ 
  isTrue: false,
  complexObject: {
    minValue: 7,
    stringValue: "hello"
  },
  MyClassString: "one",
  MyClassString2: "two",
  MyClassString3: "three"
}];
我创建了一个MyClass数组,如下所示:

export class MyClass {

  isTrue: boolean;

  complexObject: {
    minValue: number;
    stringValue: string;
  };

  MyClassString: string;
  MyClassString2: string;
  MyClassString3: string;

}
export const MYCLASS: MyClass[] = [
{ 
  isTrue: false,
  complexObject: {
    minValue: 7,
    stringValue: "hello"
  },
  MyClassString: "one",
  MyClassString2: "two",
  MyClassString3: "three"
}];
即使此代码中没有语法错误,Angular编译器也会出错

如果我删除“complexObject”,一切正常。 如果我只使用基元类型创建实例,就不会有错误。 如何创建复杂对象并将其初始化为数组而不出现编译错误

仅当对象具有基元类型时,才能使用此语法实例化对象吗


错误是:Object literal只能指定已知属性,而“complexObject”在类型“MyClass”中不存在

export const MYCLASS:Array<MyClass>=[
  {
  },
  {
  }
]
导出常量MYCLASS:数组=[
{
},
{
}
]

我认为如果您以这种方式声明您的类会更好:

export class ComplexType {
    minValue: number;
    stringValue: string;
}

export class MyClass {

  isTrue: boolean;

  complexObject: ComplexType;

  myClassString: string;
  myClassString2: string;
  myClassString3: string;

}

MyClass是一个类,但您正试图将其用作一个类型。@claudioz如果我将您的代码放到。一些旧版本的TS有bug。如果您使用的是旧版本,则应升级。否则,你需要在你的问题中添加细节(通过编辑,而不是在下面添加评论),这样人们就可以重现你的真实问题assignments@claudioz您能编辑您的帖子并显示您收到的错误消息吗?错误是:Object literal只能指定已知属性,“complexObject”不存在于类型“MyClass”中,这不是一个有用的答案,因为他给出的代码将无错误地编译,所以无论他得到什么错误(他让我们猜测可能是什么错误),都可能是由于其他代码中未发布的内容造成的。错误是:Object literal可能只指定已知属性,“MyClass”类型中不存在“complexObject”