10 classes

tsz is 4.6x faster 463 lines 8 KB

Timing

tsz
169.63ms
tsgo
774.21ms

Files

// Synthetic TypeScript benchmark file

export interface Config0 {
  readonly id: number;
  name: string;
  enabled: boolean;
  options?: Record<string, unknown>;
}

export class Service0 implements Config0 {
  readonly id: number = 0;
  name: string;
  enabled: boolean = true;
  private items: string[] = [];
  constructor(name: string) { this.name = name; }
  getId(): number { return this.id; }
  getName(): string { return this.name; }
  setName(value: string): void { this.name = value; }
  isEnabled(): boolean { return this.enabled; }
  addItem(item: string): void { this.items.push(item); }
  getItems(): readonly string[] { return this.items; }
  static create(name: string): Service0 { return new Service0(name); }
}

export interface Config1 {
  readonly id: number;
  name: string;
  enabled: boolean;
  options?: Record<string, unknown>;
}

export class Service1 implements Config1 {
  readonly id: number = 1;
  name: string;
  enabled: boolean = true;
  private items: string[] = [];
  constructor(name: string) { this.name = name; }
  getId(): number { return this.id; }
  getName(): string { return this.name; }
  setName(value: string): void { this.name = value; }
  isEnabled(): boolean { return this.enabled; }
  addItem(item: string): void { this.items.push(item); }
  getItems(): readonly string[] { return this.items; }
  static create(name: string): Service1 { return new Service1(name); }
}

export interface Config2 {
  readonly id: number;
  name: string;
  enabled: boolean;
  options?: Record<string, unknown>;
}

export class Service2 implements Config2 {
  readonly id: number = 2;
  name: string;
  enabled: boolean = true;
  private items: string[] = [];
  constructor(name: string) { this.name = name; }
  getId(): number { return this.id; }
  getName(): string { return this.name; }
  setName(value: string): void { this.name = value; }
  isEnabled(): boolean { return this.enabled; }
  addItem(item: string): void { this.items.push(item); }
  getItems(): readonly string[] { return this.items; }
  static create(name: string): Service2 { return new Service2(name); }
}

export interface Config3 {
  readonly id: number;
  name: string;
  enabled: boolean;
  options?: Record<string, unknown>;
}

export class Service3 implements Config3 {
  readonly id: number = 3;
  name: string;
  enabled: boolean = true;
  private items: string[] = [];
  constructor(name: string) { this.name = name; }
  getId(): number { return this.id; }
  getName(): string { return this.name; }
  setName(value: string): void { this.name = value; }
  isEnabled(): boolean { return this.enabled; }
  addItem(item: string): void { this.items.push(item); }
  getItems(): readonly string[] { return this.items; }
  static create(name: string): Service3 { return new Service3(name); }
}

export interface Config4 {
  readonly id: number;
  name: string;
  enabled: boolean;
  options?: Record<string, unknown>;
}

export class Service4 implements Config4 {
  readonly id: number = 4;
  name: string;
  enabled: boolean = true;
  private items: string[] = [];
  constructor(name: string) { this.name = name; }
  getId(): number { return this.id; }
  getName(): string { return this.name; }
  setName(value: string): void { this.name = value; }
  isEnabled(): boolean { return this.enabled; }
  addItem(item: string): void { this.items.push(item); }
  getItems(): readonly string[] { return this.items; }
  static create(name: string): Service4 { return new Service4(name); }
}

export interface Config5 {
  readonly id: number;
  name: string;
  enabled: boolean;
  options?: Record<string, unknown>;
}

export class Service5 implements Config5 {
  readonly id: number = 5;
  name: string;
  enabled: boolean = true;
  private items: string[] = [];
  constructor(name: string) { this.name = name; }
  getId(): number { return this.id; }
  getName(): string { return this.name; }
  setName(value: string): void { this.name = value; }
  isEnabled(): boolean { return this.enabled; }
  addItem(item: string): void { this.items.push(item); }
  getItems(): readonly string[] { return this.items; }
  static create(name: string): Service5 { return new Service5(name); }
}

export interface Config6 {
  readonly id: number;
  name: string;
  enabled: boolean;
  options?: Record<string, unknown>;
}

export class Service6 implements Config6 {
  readonly id: number = 6;
  name: string;
  enabled: boolean = true;
  private items: string[] = [];
  constructor(name: string) { this.name = name; }
  getId(): number { return this.id; }
  getName(): string { return this.name; }
  setName(value: string): void { this.name = value; }
  isEnabled(): boolean { return this.enabled; }
  addItem(item: string): void { this.items.push(item); }
  getItems(): readonly string[] { return this.items; }
  static create(name: string): Service6 { return new Service6(name); }
}

export interface Config7 {
  readonly id: number;
  name: string;
  enabled: boolean;
  options?: Record<string, unknown>;
}

export class Service7 implements Config7 {
  readonly id: number = 7;
  name: string;
  enabled: boolean = true;
  private items: string[] = [];
  constructor(name: string) { this.name = name; }
  getId(): number { return this.id; }
  getName(): string { return this.name; }
  setName(value: string): void { this.name = value; }
  isEnabled(): boolean { return this.enabled; }
  addItem(item: string): void { this.items.push(item); }
  getItems(): readonly string[] { return this.items; }
  static create(name: string): Service7 { return new Service7(name); }
}

export interface Config8 {
  readonly id: number;
  name: string;
  enabled: boolean;
  options?: Record<string, unknown>;
}

export class Service8 implements Config8 {
  readonly id: number = 8;
  name: string;
  enabled: boolean = true;
  private items: string[] = [];
  constructor(name: string) { this.name = name; }
  getId(): number { return this.id; }
  getName(): string { return this.name; }
  setName(value: string): void { this.name = value; }
  isEnabled(): boolean { return this.enabled; }
  addItem(item: string): void { this.items.push(item); }
  getItems(): readonly string[] { return this.items; }
  static create(name: string): Service8 { return new Service8(name); }
}

export interface Config9 {
  readonly id: number;
  name: string;
  enabled: boolean;
  options?: Record<string, unknown>;
}

export class Service9 implements Config9 {
  readonly id: number = 9;
  name: string;
  enabled: boolean = true;
  private items: string[] = [];
  constructor(name: string) { this.name = name; }
  getId(): number { return this.id; }
  getName(): string { return this.name; }
  setName(value: string): void { this.name = value; }
  isEnabled(): boolean { return this.enabled; }
  addItem(item: string): void { this.items.push(item); }
  getItems(): readonly string[] { return this.items; }
  static create(name: string): Service9 { return new Service9(name); }
}