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

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

Interfaces

AnnotatedTypeAfterValidation
AnyOperatorDetails
AssignabilityProblem
AssignabilitySuccess
BinaryOperatorDetails
BinaryOperatorSignature
BottomConfigurationChain
BottomFactoryService
BottomKindOptions
BottomTypeDetails
ClassConfigurationChain
ClassFactoryService
ClassKindOptions
ClassTypeDetails
ConversionEdge
CreateBottomTypeDetails
CreateClassTypeDetails
CreateCustomTypeDetails
CreateFieldDetails
CreateFunctionTypeDetails
CreateMethodDetails
CreateParameterDetails
CustomFactoryService
CustomKindOptions
CustomTypeConfigurationChain
CustomTypeDetails
EqualityEdge
FieldDetails
FixedParameterKindOptions
FixedParameterTypeDetails
FunctionConfigurationChain
FunctionFactoryService
FunctionKindOptions
FunctionTypeDetails
GenericOperatorDetails
GraphAlgorithms
IndexedTypeConflict
InferClassFieldAccess
InferClassLiteral
InferCurrentTypeRule
InferenceProblem
InferenceRuleWithOptions
InferFunctionCall
InferOperatorWithMultipleOperands
InferOperatorWithSingleOperand
InternalRuleOptions
Kind
KindOptions
KindRegistry
LanguageNodeInferenceCaching
LanguageService
MarkSubTypeOptions
MethodDetails
MultiplicityKindOptions
MultiplicityTypeDetails
NoSuperClassCyclesValidationOptions
OperatorConfigurationBinaryChain
OperatorConfigurationGenericChain
OperatorConfigurationTernaryChain
OperatorConfigurationUnaryChain
OperatorFactoryService
OverloadedFunctionDetails
ParameterDetails
PreconditionsForInitializationState
PrimitiveConfigurationChain
PrimitiveFactoryService
PrimitiveKindOptions
PrimitiveTypeDetails
ProblemPrinter
RegistrationOptions
RuleCollectorListener
RuleOptions
SingleFunctionDetails
SubType
SubTypeEdge
SubTypeProblem
SubTypeSuccess
TernaryOperatorDetails
TernaryOperatorSignature
TopClassKindOptions
TopClassTypeDetails
TopConfigurationChain
TopFactoryService
TopKindOptions
TopTypeDetails
TypeAssignability
TypeConversion
TypeDetails
TypeEdge
TypeEquality
TypeEqualityProblem
TypeInferenceCollector
TypeInferenceCollectorListener
TypeInferenceRuleOptions
TypeInferenceRuleWithInferringChildren
TypeReferenceListener
TypeRelationshipCaching
TypeResolvingService
TypeStateListener
TypirProblem
TypirSpecifics
UnaryOperatorDetails
UnaryOperatorSignature
UniqueMethodValidationEntry
UniqueMethodValidationOptions
ValidationCollector
ValidationCollectorListener
ValidationConstraints
ValidationMessageProperties
ValidationRuleLifecycle
ValidationRuleOptions
ValidationRuleWithOptions
ValueConflict
WaitingForIdentifiableAndCompletedTypeReferencesListener

Type Aliases

AssignabilityResult
BasicTypeDescriptor
CachePending
ConversionMode
ConversionModeForSpecification
CustomTypeInitialization
CustomTypeProperties
CustomTypePropertyInitialization
CustomTypePropertyStorage
CustomTypePropertyTypes
CustomTypeStorage
DeepPartial
EdgeCachingInformation
InferCurrentTypeValidationRule
InferenceRuleNotApplicable
MakePropertyOptional
Module
Names
NameTypePair
OperatorValidationRule
PartialTypirServices
RelaxedValidationProblem
Severity
SubTypeResult
TypeCheckStrategy
TypeDescriptor
TypeDescriptorForCustomTypes
TypeGraphListener
TypeInferenceResultWithInferringChildren
TypeInferenceResultWithoutInferringChildren
TypeInferenceRule
TypeInferenceRuleWithoutInferringChildren
TypeInitializationState
TypeInitializerListener
TypeInitializers
Types
TypeToCheck
TypirServices
ValidationMessageProvider
ValidationProblem
ValidationProblemAcceptor
ValidationProblemProperties
ValidationRule
ValidationRuleFunctional
WaitingForInvalidTypeReferencesListener

Variables

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

Functions

assertKind
assertTrue
assertTypirType
assertUnreachable
bindInferCurrentTypeRule
bindValidateCurrentTypeRule
checkNameTypesMap
checkTypeArrays
checkTypes
checkValueForConflict
createDefaultTypirServicesModule
createKindConflict
createTypeCheckStrategy
createTypirServices
createTypirServicesWithAdditionalServices
eagerLoad
inject
isAssignabilityProblem
isAssignabilityResult
isAssignabilitySuccess
isBottomKind
isBottomType
isClassKind
isClassType
isConversionEdge
isCustomKind
isCustomType
isEqualityEdge
isFixedParametersKind
isFixedParameterType
isFunctionKind
isFunctionType
isIndexedTypeConflict
isInferenceProblem
isMultiplicityKind
isMultiplicityType
isNameTypePair
isPrimitiveKind
isPrimitiveType
isSpecificTypirProblem
isSubTypeEdge
isSubTypeProblem
isSubTypeResult
isSubTypeSuccess
isTopClassKind
isTopClassType
isTopKind
isTopType
isType
isTypeEdge
isTypeEqualityProblem
isValidationProblem
isValueConflict
optionsBoundToType
registerInferCurrentTypeRules
removeFromArray
ruleWithOptionsBoundToType
skipInferenceRuleForExistingType
toArray
toArrayWithValue