繁体   English   中英

打字稿界面

[英]Typescript interfaces

我试图为角度2中的以下对象创建接口:

// set the render state object
    this.aRenderState = {
      model: "",
      colour: false,
      showWireframe: false,
      showGrid: true,
      clipping: {
          enabled: false,
          visible: false,
          planes: [
              {
                  name: 'X',
                  plane: new THREE.Plane(new THREE.Vector3(1, 0, 0), 0),
                  object: null,
                  enabled: true,
                  flip: false,
                  size: [this.aDomain.getSize().z, this.aDomain.getSize().y],
              },
              {
                  name: 'Y',
                  plane: new THREE.Plane(new THREE.Vector3(0, 1, 0), 0),
                  object: null,
                  enabled: false,
                  flip: false,
                  size: [this.aDomain.getSize().x, this.aDomain.getSize().z]
              },
              {
                  name: 'Z',
                  plane: new THREE.Plane(new THREE.Vector3(0, 0, -1), 0),
                  object: null,
                  enabled: false,
                  flip: false,
                  size: [this.aDomain.getSize().x, this.aDomain.getSize().y]
              },
          ]
      }
    }

以下是我的尝试:

export interface IPlane {
  name: string;
  plane: THREE.Plane;
  object: {};
  enabled: boolean;
  flip: boolean;
  size: number[];
}

export interface IClipping {
  enabled: boolean;
  visible: boolean;
  planes: IPlane[];
}

export interface IRenderState {
  model: string;
  colour: boolean;
  showWireframe: boolean;
  showGrid: boolean;
  clipping: IClipping;
}

当我运行项目时,出现以下错误消息:

类型'{model:string; 颜色:假; showWireframe:假; showGrid:true; 裁剪:{启用:否; ...”不能分配给类型“ IRenderState”。 属性“剪切”的类型不兼容。 输入'{enabled:false; 可见:错误; 飞机:[{名称:字符串; 飞机 对象:null; 启用:t ...”不能分配给类型“ {启用:布尔值; 可见:布尔值; 平面:[IPlane,IPlane,IPlane]; }”。 属性“平面”的类型不兼容。 输入'[{name:string; 飞机 对象:null; 已启用:true; 翻转:错误; 大小:[数字,数字]; ...”不能分配给类型[[IPlane,IPlane,IPlane]”。 输入'{name:string; 飞机 对象:null; 已启用:true; 翻转:错误; 大小:[数字,数字]; }”不可分配给“ IPlane”类型。 属性“大小”的类型不兼容。 类型“ [数字,数字]”不能分配给类型“ [0,0]”。 类型“数字”不能分配给类型“ 0”。)

我不明白我在做什么错。

打字稿2.2具有“对象”类型(全部较低)。 建议从现在开始使用此版本。

interface IPlane {
    object: object;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM