UNPKG

immutable-class

Version:

A template for creating immutable classes

56 lines 1.53 kB
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