import {Container} from '../../collections';
import {emit_object} from '../../helpers/emit-object';
import {ObjectMember} from '../members/object';
import {Type} from '../type';

export interface IObjectTypeRequiredParameters {
  children: ObjectMember[];
}

// tslint:disable-next-line no-empty-interface
export interface IObjectTypeOptionalParameters {}

export class ObjectType extends Type<IObjectTypeRequiredParameters, IObjectTypeOptionalParameters> {

  public get default_parameters(): IObjectTypeOptionalParameters {
    return {};
  }

  public _emit(_container: Container): string {
    const {children} = this.parameters;
    return emit_object(children, this);
  }

}

import {Container} from '../../collections';
import {emit_object} from '../../helpers/emit-object';
import {ObjectMember} from '../members/object';
import {Type} from '../type';

// tslint:disable-next-line no-empty-interface
export interface IObjectTypeRequiredParameters {}

export interface IObjectTypeOptionalParameters {
  children: ObjectMember[];
}

export class ObjectType extends Type<IObjectTypeRequiredParameters, IObjectTypeOptionalParameters> {

  public get default_parameters(): IObjectTypeOptionalParameters {
    return {
      children: [],
    };
  }

  public _emit(_container: Container): string {
    const {children} = this.parameters;
    return emit_object(children, this);
  }

}

--- 
+++ 
@@ -3,19 +3,17 @@
 import {ObjectMember} from '../members/object';
 import {Type} from '../type';
 
-// tslint:disable-next-line no-empty-interface
-export interface IObjectTypeRequiredParameters {}
-
-export interface IObjectTypeOptionalParameters {
+export interface IObjectTypeRequiredParameters {
   children: ObjectMember[];
 }
+
+// tslint:disable-next-line no-empty-interface
+export interface IObjectTypeOptionalParameters {}
 
 export class ObjectType extends Type<IObjectTypeRequiredParameters, IObjectTypeOptionalParameters> {
 
   public get default_parameters(): IObjectTypeOptionalParameters {
-    return {
-      children: [],
-    };
+    return {};
   }
 
   public _emit(_container: Container): string {
Update ObjectType
children should be required parameter
