Skip to content

CtorToType

@tsed/schema

Usage

typescript
import { CtorToType } from "@tsed/specs/schema/src/domain/types";

See /packages/specs/schema/src/domain/types.ts.

Overview

ts
type CtorToType<C> = C extends StringConstructor ? string : C extends NumberConstructor ? number : C extends BooleanConstructor ? boolean : C extends DateConstructor ? Date : C extends ArrayConstructor ? any[] : C extends MapConstructor ? Record<string, any> : C extends SetConstructor ? Set<any> : C extends ObjectConstructor ? Record<string, any> : C extends abstract new (...args: any) => any ? InstanceType<C> : any;

Description

Maps common JavaScript constructors to their corresponding TypeScript types.

This utility type converts constructor functions (String, Number, Date, etc.) into their corresponding runtime types, enabling better type inference when creating schemas programmatically.

Type Mappings

  • StringConstructorstring
  • NumberConstructornumber
  • BooleanConstructorboolean
  • DateConstructorDate
  • ArrayConstructorany[]
  • MapConstructorRecord<string, any>
  • SetConstructorSet<any>
  • ObjectConstructorRecord<string, any>
  • Custom classes → InstanceType<C>

Usage

typescript
type StringType = CtorToType<StringConstructor>;  // string
type DateType = CtorToType<DateConstructor>;      // Date
type CustomType = CtorToType<typeof MyClass>;     // MyClass

Released under the MIT License.