gx
chenyc
2025-06-12 7b72ac13a83764a662159d4a49b7fffb90476ecb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { isValidNumber } from '../utils/index';
 
export interface IDimensions {
  width: number
  height: number
}
 
export class Dimensions implements IDimensions {
  private _width: number;
 
  private _height: number;
 
  constructor(width: number, height: number) {
    if (!isValidNumber(width) || !isValidNumber(height)) {
      throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);
    }
 
    this._width = width;
    this._height = height;
  }
 
  public get width(): number { return this._width; }
 
  public get height(): number { return this._height; }
 
  public reverse(): Dimensions {
    return new Dimensions(1 / this.width, 1 / this.height);
  }
}