Module typir

Typir: Core functionality of Typir

Typir is a library for type systems and type checking for software languages in the web.

Typir is OpenSource, written in TypeScript, and follows pragmatic approaches for simplifying type checking in practical language engineering projects by providing default implementations for recurring problems. As a stand-alone library, Typir provides a TypeScript-API for language engineers without an additional, external DSL for formalizing types.

npm install typir

For an overview about the core features of Typir with a simple application example, see the root README.md of the Typir project.

Important design decision: Typir is a stand-alone library and has no dependencies to any existing language workbench.

Look at the examples in the examples folder of the repo (here). There we have some demo projects for you to get started.

MIT License

Namespaces

Module

Classes

BottomKind
BottomType
ClassKind
ClassType
ClassTypeInitializer
CompositeTypeInferenceRule
DefaultKindRegistry
DefaultLanguageNodeInferenceCaching
DefaultOperatorFactory
DefaultSubType
DefaultTypeAssignability
DefaultTypeConflictPrinter
DefaultTypeConversion
DefaultTypeEquality
DefaultTypeInferenceCollector
DefaultTypeRelationshipCaching
DefaultTypeResolver
DefaultValidationCollector
DefaultValidationConstraints
FixedParameterKind
FixedParameterType
FunctionKind
FunctionType
FunctionTypeInitializer
MapListConverter
MultiplicityKind
MultiplicityType
Parameter
ParameterValue
PrimitiveKind
PrimitiveType
TopClassKind
TopClassType
TopKind
TopType
Type
TypeGraph
TypeInitializer
TypeReference
UniqueClassValidation
UniqueFunctionValidation
UniqueMethodValidation
WaitingForIdentifiableAndCompletedTypeReferences
WaitingForInvalidTypeReferences

Interfaces

AnnotatedTypeAfterValidation
AnyOperatorDetails
AssignabilityProblem
BinaryOperatorDetails
BinaryOperatorSignature
BottomFactoryService
BottomKindOptions
BottomTypeDetails
ClassFactoryService
ClassKindOptions
ClassTypeDetails
ConversionEdge
CreateClassTypeDetails
CreateFieldDetails
CreateFunctionTypeDetails
CreateParameterDetails
EqualityEdge
FieldDetails
FixedParameterKindOptions
FixedParameterTypeDetails
FunctionFactoryService
FunctionInferenceRules
FunctionKindOptions
FunctionTypeDetails
GenericOperatorDetails
IndexedTypeConflict
InferenceProblem
Kind
KindRegistry
LanguageNodeInferenceCaching
MethodDetails
MultiplicityKindOptions
MultiplicityTypeDetails
OperatorFactoryService
OverloadedFunctionDetails
ParameterDetails
PreconditionsForInitializationState
PrimitiveFactoryService
PrimitiveKindOptions
PrimitiveTypeDetails
ProblemPrinter
SingleFunctionDetails
SubType
SubTypeEdge
SubTypeProblem
TernaryOperatorDetails
TernaryOperatorSignature
TopClassKindOptions
TopClassTypeDetails
TopFactoryService
TopKindOptions
TopTypeDetails
TypeAssignability
TypeConversion
TypeDetails
TypeEdge
TypeEquality
TypeEqualityProblem
TypeGraphListener
TypeInferenceCollector
TypeInferenceCollectorListener
TypeInferenceRuleWithInferringChildren
TypeReferenceListener
TypeRelationshipCaching
TypeResolvingService
TypeStateListener
TypirProblem
UnaryOperatorDetails
UnaryOperatorSignature
UniqueMethodValidationEntry
ValidationCollector
ValidationConstraints
ValidationMessageDetails
ValidationProblem
ValidationRuleWithBeforeAfter
ValueConflict
WaitingForIdentifiableAndCompletedTypeReferencesListener

Type Aliases

BasicTypeSelector
CachePending
ConversionMode
ConversionModeForSpecification
DeepPartial
EdgeCachingInformation
FunctionCallValidationRule
InferBottomType
InferClassLiteral
InferenceRuleNotApplicable
InferFunctionCall
InferOperatorWithMultipleOperands
InferOperatorWithSingleOperand
InferPrimitiveType
InferTopClassType
InferTopType
Module
Names
NameTypePair
OperatorValidationRule
PartialTypirServices
Severity
TypeCheckStrategy
TypeInferenceResultWithoutInferringChildren
TypeInferenceRule
TypeInferenceRuleWithoutInferringChildren
TypeInitializationState
TypeInitializerListener
TypeInitializers
Types
TypeSelector
TypeToCheck
TypirServices
ValidationMessageProvider
ValidationRule
WaitingForInvalidTypeReferencesListener

Variables

AssignabilityProblem
BottomKindName
CachePending
ClassKindName
ConversionEdge
DefaultTypirServiceModule
EqualityEdge
FixedParameterKindName
FunctionKindName
IndexedTypeConflict
InferenceProblem
InferenceRuleNotApplicable
MULTIPLICITY_UNLIMITED
MultiplicityKindName
NO_FUNCTION_NAME
NO_PARAMETER_NAME
PrimitiveKindName
SubTypeEdge
SubTypeProblem
TopClassKindName
TopKindName
TypeEqualityProblem
ValidationProblem
ValueConflict

Functions

assertKind
assertTrue
assertType
assertUnreachable
checkNameTypesMap
checkTypeArrays
checkTypes
checkValueForConflict
createKindConflict
createNoSuperClassCyclesValidation
createTypeCheckStrategy
createTypirServices
eagerLoad
expectTypirTypes
inject
isAssignabilityProblem
isBottomKind
isBottomType
isClassKind
isClassType
isConversionEdge
isEqualityEdge
isFixedParametersKind
isFixedParameterType
isFunctionKind
isFunctionType
isIndexedTypeConflict
isInferenceProblem
isKind
isMultiplicityKind
isMultiplicityType
isNameTypePair
isPrimitiveKind
isPrimitiveType
isSpecificTypirProblem
isSubTypeEdge
isSubTypeProblem
isTopClassKind
isTopClassType
isTopKind
isTopType
isType
isTypeEdge
isTypeEqualityProblem
isValidationProblem
isValueConflict
toArray