我正在尝试在角度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:false; showGrid: 真正;剪辑:{enabled:false; ...'不能分配给类型 ' IRenderState&#39 ;.财产类型'裁剪'是不相容的。 输入' {enabled:false;可见:错误;飞机:[{name:string;飞机:飞机; object:null;启用:t ...'不能分配给类型 ' {enabled:boolean; visible:boolean;飞机:[IPlane,IPlane, IPLANE]; }&#39 ;. 财产类型'飞机'是不相容的。 输入' [{name:string;飞机:飞机; object:null;启用:true;翻转:假;尺寸:[数量,数量]; ...'不能转让给 键入' [IPlane,IPlane,IPlane]'。 输入' {name:string;飞机:飞机; object:null;启用:true;翻转:假;尺寸:[数量,数量]; }'不能转让给 键入' IPlane'。 财产类型'大小'是不相容的。 输入' [号码,号码]'不能分配类型' [0,0]'。 输入'数字'不能分配给' 0'。)
我无法理解我做错了什么。
答案 0 :(得分:0)
打字稿2.2有"对象"类型(全部更低)。建议从现在开始使用这个。
interface IPlane {
object: object;
}