¿Por qué estas líneas
handleSettings: IResizeHandleSettings = { right: { position: 'right', axis: 'x', dimension: 'width', eventProperty: 'clientX', translate: false, deltaMultiplier: 1, }, left: { position: 'left', axis: 'x', dimension: 'width', eventProperty: 'clientX', translate: true, deltaMultiplier: -1, }, bottom: { position: 'bottom', axis: 'y', dimension: 'height', eventProperty: 'clientY', translate: false, deltaMultiplier: 1, }, top: { position: 'top', axis: 'y', dimension: 'height', eventProperty: 'clientY', translate: true, deltaMultiplier: -1, }, }; selectedHandleSettings: { x: string | undefined | null; y: string | undefined | null; settings: IResizeHandleSettings[]; }; method(positionKey: string) { this.selectedHandleSettings.settings.push(this.handleSettings[positionKey]); }lanzar el error
S2345: Argument of type 'IResizeHandleSettingsDetail' is not assignable to parameter of type 'IResizeHandleSettings'. Type 'IResizeHandleSettingsDetail' is missing the following properties from type 'IResizeHandleSettings': left, right, top, bottomaunque mi tipo se define con la firma de índice de la siguiente manera
export interface IResizeHandleSettings { [key: string]: IResizeHandleSettingsDetail; left: IResizeHandleSettingsDetail; right: IResizeHandleSettingsDetail; top: IResizeHandleSettingsDetail; bottom: IResizeHandleSettingsDetail; } export interface IResizeHandleSettingsDetail { position: string; axis: string; dimension: string; eventProperty: string; translate: boolean; deltaMultiplier: number; }this.handleSettings[positionKey] hace referencia a un IResizeHandleSettingsDetail , por lo que debe configurar selectedHandleSettings en consecuencia:
selectedHandleSettings: { x: string | undefined | null; y: string | undefined | null; settings: IResizeHandleSettingsDetail[]; // <-- ...Detail! };