angular - Typescript interfaces -
i trying create interface following object in angular 2:
// set 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] }, ] } }
the following attempt:
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; }
when run project following error message:
type '{ model: string; colour: false; showwireframe: false; showgrid: true; clipping: { enabled: false;...' not assignable type 'irenderstate'. types of property 'clipping' incompatible. type '{ enabled: false; visible: false; planes: [{ name: string; plane: plane; object: null; enabled: t...' not assignable type '{ enabled: boolean; visible: boolean; planes: [iplane, iplane, iplane]; }'. types of property 'planes' incompatible. type '[{ name: string; plane: plane; object: null; enabled: true; flip: false; size: [number, number]; ...' not assignable type '[iplane, iplane, iplane]'. type '{ name: string; plane: plane; object: null; enabled: true; flip: false; size: [number, number]; }' not assignable type 'iplane'. types of property 'size' incompatible. type '[number, number]' not assignable type '[0, 0]'. type 'number' not assignable type '0'.)
i cannot understand doing wrong.
typescript 2.2 has "object" type (all lower). recommended use 1 now.
interface iplane { object: object; }
Comments
Post a Comment