Interface CreateClassTypeDetails<T, T1, T2>

Contains properties which are be relevant for all types to create, i.e. it is used for specifying details of all types to create.

interface CreateClassTypeDetails<T = unknown, T1 = unknown, T2 = unknown> {
    associatedLanguageNode?: unknown;
    className: string;
    fields: CreateFieldDetails[];
    inferenceRuleForConstructor?: InferClassLiteral<T1>;
    inferenceRuleForDeclaration?: (languageNode: unknown) => boolean;
    inferenceRuleForFieldAccess?: (languageNode: unknown) => unknown;
    inferenceRuleForReference?: InferClassLiteral<T2>;
    methods: CreateFunctionTypeDetails<T>[];
    superClasses?: unknown;
}

Type Parameters

  • T = unknown
  • T1 = unknown
  • T2 = unknown

Hierarchy (View Summary)

Properties

associatedLanguageNode?: unknown

A node from the language might be associated with the new type to create, e.g. the declaration node in the AST (e.g. a FunctionDeclarationNode is associated with the corresponding FunctionType).

className: string
inferenceRuleForConstructor?: InferClassLiteral<T1>
inferenceRuleForDeclaration?: (languageNode: unknown) => boolean
inferenceRuleForFieldAccess?: (languageNode: unknown) => unknown
inferenceRuleForReference?: InferClassLiteral<T2>
superClasses?: unknown