immutable-class
Version:
A template for creating immutable classes
56 lines • 1.53 kB
TypeScript
import type { BackCompat, Property } from './base-immutable';
import { BaseImmutable } from './base-immutable';
export interface DriverValue {
name: string;
}
export interface DriverJS {
name: string;
}
export declare class Driver extends BaseImmutable<DriverValue, DriverJS> {
static POPE: Driver;
static PROPERTIES: Property[];
static fromJS(params: DriverValue): Driver;
constructor(params: DriverValue);
}
export interface CarValue {
name: string;
fuel: string;
subCar: Car;
range?: number;
relatedCars?: Car[];
createdOn?: Date;
owners?: string[];
driver?: Driver;
passengers?: string[];
}
export interface CarJS {
name: string;
fuel?: string;
subCar?: CarJS;
range?: number;
relatedCars?: CarJS[];
createdOn?: Date | string;
owners?: string[];
driver?: DriverJS;
passengers?: string[];
}
export declare class Car extends BaseImmutable<CarValue, CarJS> {
static PROPERTIES: Property<CarValue>[];
static BACK_COMPATS: BackCompat[];
static isCar(car: Car): boolean;
static fromJS(properties: CarJS): Car;
name: string;
fuel: string;
subCar: Car;
readonly range: number | undefined;
createdOn: Date;
constructor(properties: CarValue);
changeFuel: (fuel: string) => this;
getFuel: () => string;
getRange: () => number;
getName: () => string;
getRelatedCars: () => Car[];
getSubCar(): Car | null;
changeRange(n: number): Car;
}
//# sourceMappingURL=car.mock.d.ts.map