Skip to main content

@typescript-eslint/type-utils

npm: @typescript-eslint/type-utils v7.18.0

Type utilities for working with TypeScript types ✨

This package contains public utilities for working with TypeScript types. Rules declared in @typescript-eslint/eslint-plugin use these utility functions.

The utilities in this package are both:

  • More generally ESLint-focused than the broad TypeScript utilities in ts-api-utils
  • Separated from @typescript-eslint/utils so that that package does not require a dependency on typescript
tip

See Custom Rules for documentation on creating your own custom ESLint rules for TypeScript code.


The following documentation is auto-generated from source code.

Functions​

containsAllTypesByName()​

function containsAllTypesByName(
type,
allowAny,
allowedNames,
matchAnyInstead): boolean

Parameters​

ParameterTypeDefault valueDescription
typeTypeundefinedType being checked by name.
allowAnybooleanundefinedWhether to consider any and unknown to match.
allowedNamesSet<string>undefinedSymbol names checking on the type.
matchAnyInsteadbooleanfalseWhether to instead just check if any parts match, rather than all parts.

Returns​

boolean

Whether the type is, extends, or contains the allowed names (or all matches the allowed names, if mustMatchAll is true).

Source​

containsAllTypesByName.ts:13


getConstrainedTypeAtLocation()​

function getConstrainedTypeAtLocation(services, node): ts.Type

Resolves the given node's type. Will resolve to the type's generic constraint, if it has one.

Parameters​

ParameterType
servicesParserServicesWithTypeInformation
nodeNode

Returns​

ts.Type

Source​

getConstrainedTypeAtLocation.ts:10


getContextualType()​

function getContextualType(checker, node): ts.Type | undefined

Returns the contextual type of a given node. Contextual type is the type of the target the node is going into. i.e. the type of a called function's parameter, or the defined type of a variable declaration

Parameters​

ParameterType
checkerTypeChecker
nodeExpression

Returns​

ts.Type | undefined

Source​

getContextualType.ts:8


getDeclaration()​

function getDeclaration(services, node): ts.Declaration | null

Gets the declaration for the given variable

Parameters​

ParameterType
servicesParserServicesWithTypeInformation
nodeNode

Returns​

ts.Declaration | null

Source​

getDeclaration.ts:10


getSourceFileOfNode()​

function getSourceFileOfNode(node): ts.SourceFile

Gets the source file for a given node

Parameters​

ParameterType
nodeNode

Returns​

ts.SourceFile

Source​

getSourceFileOfNode.ts:6


getTypeFlags()​

function getTypeFlags(type): ts.TypeFlags

Gets all of the type flags in a type, iterating through unions automatically.

Parameters​

ParameterType
typeType

Returns​

ts.TypeFlags

Source​

typeFlagUtils.ts:9


getTypeName()​

function getTypeName(typeChecker, type): string

Get the type name of a given type.

Parameters​

ParameterTypeDescription
typeCheckerTypeCheckerThe context sensitive TypeScript TypeChecker.
typeTypeThe type to get the name of.

Returns​

string

Source​

getTypeName.ts:8


getTypeOfPropertyOfName()​

function getTypeOfPropertyOfName(
checker,
type,
name,
escapedName?): ts.Type | undefined

Parameters​

ParameterType
checkerTypeChecker
typeType
namestring
escapedName?__String

Returns​

ts.Type | undefined

Source​

propertyTypes.ts:3


getTypeOfPropertyOfType()​

function getTypeOfPropertyOfType(
checker,
type,
property): ts.Type | undefined

Parameters​

ParameterType
checkerTypeChecker
typeType
propertySymbol

Returns​

ts.Type | undefined

Source​

propertyTypes.ts:25


isAnyOrAnyArrayTypeDiscriminated()​

function isAnyOrAnyArrayTypeDiscriminated(node, checker): AnyType

Parameters​

ParameterType
nodeNode
checkerTypeChecker

Returns​

AnyType

AnyType.Any if the type is any, AnyType.AnyArray if the type is any[] or readonly any[], otherwise it returns AnyType.Safe.

Source​

predicates.ts:119


isBuiltinSymbolLike()​

function isBuiltinSymbolLike(
program,
type,
symbolName): boolean

Parameters​

ParameterType
programProgram
typeType
symbolNamestring | string[]

Returns​

boolean

Source​

builtinSymbolLikes.ts:120


isBuiltinSymbolLikeRecurser()​

function isBuiltinSymbolLikeRecurser(
program,
type,
predicate): boolean

Parameters​

ParameterType
programProgram
typeType
predicate(subType) => null | boolean

Returns​

boolean

Source​

builtinSymbolLikes.ts:146


isBuiltinTypeAliasLike()​

function isBuiltinTypeAliasLike(
program,
type,
predicate): boolean

Parameters​

ParameterType
programProgram
typeType
predicate(subType) => boolean

Returns​

boolean

Source​

builtinSymbolLikes.ts:87


isErrorLike()​

function isErrorLike(program, type): boolean

Parameters​

ParameterType
programProgram
typeType

Returns​

boolean

Example​

class Foo extends Error {}
new Foo()
// ^ ErrorLike

Source​

builtinSymbolLikes.ts:40


isNullableType()​

function isNullableType(type): boolean

Checks if the given type is (or accepts) nullable

Parameters​

ParameterType
typeType

Returns​

boolean

Source​

predicates.ts:12


isPromiseConstructorLike()​

function isPromiseConstructorLike(program, type): boolean

Parameters​

ParameterType
programProgram
typeType

Returns​

boolean

Example​

const value = Promise
value.reject
// ^ PromiseConstructorLike

Source​

builtinSymbolLikes.ts:25


isPromiseLike()​

function isPromiseLike(program, type): boolean

Parameters​

ParameterType
programProgram
typeType

Returns​

boolean

Example​

class DerivedClass extends Promise<number> {}
DerivedClass.reject
// ^ PromiseLike

Source​

builtinSymbolLikes.ts:13


isReadonlyErrorLike()​

function isReadonlyErrorLike(program, type): boolean

Parameters​

ParameterType
programProgram
typeType

Returns​

boolean

Example​

type T = Readonly<Error>
// ^ ReadonlyErrorLike

Source​

builtinSymbolLikes.ts:51


isReadonlyTypeLike()​

function isReadonlyTypeLike(
program,
type,
predicate?): boolean

Parameters​

ParameterType
programProgram
typeType
predicate?(subType) => boolean

Returns​

boolean

Example​

type T = Readonly<{ foo: 'bar' }>
// ^ ReadonlyTypeLike

Source​

builtinSymbolLikes.ts:71


isSymbolFromDefaultLibrary()​

function isSymbolFromDefaultLibrary(program, symbol): boolean

Parameters​

ParameterType
programProgram
symbolundefined | Symbol

Returns​

boolean

Source​

isSymbolFromDefaultLibrary.ts:3


isTypeAnyArrayType()​

function isTypeAnyArrayType(type, checker): boolean

Parameters​

ParameterType
typeType
checkerTypeChecker

Returns​

boolean

true if the type is any[]

Source​

predicates.ts:87


isTypeAnyType()​

function isTypeAnyType(type): boolean

Parameters​

ParameterType
typeType

Returns​

boolean

true if the type is any

Source​

predicates.ts:74


isTypeArrayTypeOrUnionOfArrayTypes()​

function isTypeArrayTypeOrUnionOfArrayTypes(type, checker): boolean

Checks if the given type is either an array type, or a union made up solely of array types.

Parameters​

ParameterType
typeType
checkerTypeChecker

Returns​

boolean

Source​

predicates.ts:26


isTypeBigIntLiteralType()​

function isTypeBigIntLiteralType(type): type is BigIntLiteralType

Parameters​

ParameterType
typeType

Returns​

type is BigIntLiteralType

Source​

predicates.ts:162


isTypeFlagSet()​

function isTypeFlagSet(
type,
flagsToCheck,
isReceiver?): boolean

Parameters​

ParameterTypeDescription
typeType-
flagsToCheckTypeFlagsThe composition of one or more ts.TypeFlags.
isReceiver?booleanWhether the type is a receiving type (e.g. the type of a called function's parameter).

Returns​

boolean

Remarks​

Note that if the type is a union, this function will decompose it into the parts and get the flags of every union constituent. If this is not desired, use the isTypeFlag function from tsutils.

Source​

typeFlagUtils.ts:27


isTypeNeverType()​

function isTypeNeverType(type): boolean

Parameters​

ParameterType
typeType

Returns​

boolean

true if the type is never

Source​

predicates.ts:42


isTypeReadonly()​

function isTypeReadonly(
program,
type,
options): boolean

Checks if the given type is readonly

Parameters​

ParameterTypeDefault value
programProgramundefined
typeTypeundefined
optionsReadonlynessOptionsreadonlynessOptionsDefaults

Returns​

boolean

Source​

isTypeReadonly.ts:339


isTypeReferenceType()​

function isTypeReferenceType(type): type is TypeReference

Parameters​

ParameterType
typeType

Returns​

type is TypeReference

Source​

predicates.ts:63


isTypeTemplateLiteralType()​

function isTypeTemplateLiteralType(type): type is TemplateLiteralType

Parameters​

ParameterType
typeType

Returns​

type is TemplateLiteralType

Source​

predicates.ts:168


isTypeUnknownArrayType()​

function isTypeUnknownArrayType(type, checker): boolean

Parameters​

ParameterType
typeType
checkerTypeChecker

Returns​

boolean

true if the type is unknown[]

Source​

predicates.ts:100


isTypeUnknownType()​

function isTypeUnknownType(type): boolean

Parameters​

ParameterType
typeType

Returns​

boolean

true if the type is unknown

Source​

predicates.ts:49


isUnsafeAssignment()​

function isUnsafeAssignment(
type,
receiver,
checker,
senderNode): false | object

Does a simple check to see if there is an any being assigned to a non-any type.

This also checks generic positions to ensure there's no unsafe sub-assignments. Note: in the case of generic positions, it makes the assumption that the two types are the same.

Parameters​

ParameterType
typeType
receiverType
checkerTypeChecker
senderNodenull | Node

Returns​

false | object

false if it's safe, or an object with the two types if it's unsafe

Example​

See tests for examples

Source​

isUnsafeAssignment.ts:18


requiresQuoting()​

function requiresQuoting(name, target): boolean
  • Indicates whether identifiers require the use of quotation marks when accessing property definitions and dot notation.

Parameters​

ParameterTypeDefault value
namestringundefined
targetScriptTargetts.ScriptTarget.ESNext

Returns​

boolean

Source​

requiresQuoting.ts:3


typeIsOrHasBaseType()​

function typeIsOrHasBaseType(type, parentType): boolean

Parameters​

ParameterType
typeType
parentTypeType

Returns​

boolean

Whether a type is an instance of the parent type, including for the parent's base types.

Source​

predicates.ts:136


typeMatchesSpecifier()​

function typeMatchesSpecifier(
type,
specifier,
program): boolean

Parameters​

ParameterType
typeType
specifierTypeOrValueSpecifier
programProgram

Returns​

boolean

Source​

TypeOrValueSpecifier.ts:125

Variables​

readonlynessOptionsDefaults​

const readonlynessOptionsDefaults: ReadonlynessOptions;

Source​

isTypeReadonly.ts:41


readonlynessOptionsSchema​

const readonlynessOptionsSchema: object;

Type declaration​

MemberTypeValue
additionalPropertiesfalsefalse
propertiesobject...
properties.allowobject...
properties.allow.itemsJSONSchema4typeOrValueSpecifierSchema
properties.allow.type"array"'array'
properties.treatMethodsAsReadonlyobject...
properties.treatMethodsAsReadonly.type"boolean"'boolean'
type"object"'object'

Source​

isTypeReadonly.ts:27


typeOrValueSpecifierSchema​

const typeOrValueSpecifierSchema: JSONSchema4;

Source​

TypeOrValueSpecifier.ts:33

Enumerations​

AnyType​

Enumeration Members​

Enumeration MemberValue
Any0
AnyArray1
Safe2

Interfaces​

FileSpecifier​

Properties​

PropertyType
from"file"
namestring | string[]
path?string

LibSpecifier​

Properties​

PropertyType
from"lib"
namestring | string[]

PackageSpecifier​

Properties​

PropertyType
from"package"
namestring | string[]
packagestring

ReadonlynessOptions​

Properties​

PropertyModifierType
allow?readonlyTypeOrValueSpecifier[]
treatMethodsAsReadonly?readonlyboolean

Type Aliases​

TypeOrValueSpecifier​

type TypeOrValueSpecifier: FileSpecifier | LibSpecifier | PackageSpecifier | string;

Source​

TypeOrValueSpecifier.ts:27