codeql-action/node_modules/ts-api-utils/lib/index.d.ts

3283 строки
79 KiB
TypeScript

import ts from 'typescript';
/**
* Callback type used for {@link forEachComment}.
*
* @category Callbacks
*/
type ForEachCommentCallback = (fullText: string, comment: ts.CommentRange) => void;
/**
* Iterates over all comments owned by `node` or its children.
*
* @category Nodes - Other Utilities
* @example
* ```ts
* declare const node: ts.Node;
*
* forEachComment(node, (fullText, comment) => {
* console.log(`Found comment at position ${comment.pos}: '${fullText}'.`);
* });
* ```
*/
declare function forEachComment(node: ts.Node, callback: ForEachCommentCallback, sourceFile?: ts.SourceFile): void;
/**
* An option that can be tested with {@link isCompilerOptionEnabled}.
*
* @category Compiler Options
*/
type BooleanCompilerOptions = keyof {
[K in keyof ts.CompilerOptions as NonNullable<ts.CompilerOptions[K]> extends boolean ? K : never]: unknown;
};
/**
* Checks if a given compiler option is enabled.
* It handles dependencies of options, e.g. `declaration` is implicitly enabled by `composite` or `strictNullChecks` is enabled by `strict`.
* However, it does not check dependencies that are already checked and reported as errors, e.g. `checkJs` without `allowJs`.
* This function only handles boolean flags.
*
* @category Compiler Options
* @example
* ```ts
* const options = {
* allowJs: true,
* };
*
* isCompilerOptionEnabled(options, "allowJs"); // true
* isCompilerOptionEnabled(options, "allowSyntheticDefaultImports"); // false
* ```
*/
declare function isCompilerOptionEnabled(options: ts.CompilerOptions, option: BooleanCompilerOptions): boolean;
/**
* An option that can be tested with {@link isStrictCompilerOptionEnabled}.
*
* @category Compiler Options
*/
type StrictCompilerOption = "alwaysStrict" | "noImplicitAny" | "noImplicitThis" | "strictBindCallApply" | "strictFunctionTypes" | "strictNullChecks" | "strictPropertyInitialization";
/**
* Checks if a given compiler option is enabled, accounting for whether all flags
* (except `strictPropertyInitialization`) have been enabled by `strict: true`.
*
* @category Compiler Options
* @example
* ```ts
* const optionsLenient = {
* noImplicitAny: true,
* };
*
* isStrictCompilerOptionEnabled(optionsLenient, "noImplicitAny"); // true
* isStrictCompilerOptionEnabled(optionsLenient, "noImplicitThis"); // false
* ```
*
* @example
* ```ts
* const optionsStrict = {
* noImplicitThis: false,
* strict: true,
* };
*
* isStrictCompilerOptionEnabled(optionsStrict, "noImplicitAny"); // true
* isStrictCompilerOptionEnabled(optionsStrict, "noImplicitThis"); // false
* ```
*/
declare function isStrictCompilerOptionEnabled(options: ts.CompilerOptions, option: StrictCompilerOption): boolean;
/**
* Test if the given node has the given `ModifierFlags` set.
*
* @category Nodes - Flag Utilities
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isModifierFlagSet(node, ts.ModifierFlags.Abstract)) {
* // ...
* }
* ```
*/
declare function isModifierFlagSet(node: ts.Declaration, flag: ts.ModifierFlags): boolean;
/**
* Test if the given node has the given `NodeFlags` set.
*
* @category Nodes - Flag Utilities
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNodeFlagSet(node, ts.NodeFlags.AwaitContext)) {
* // ...
* }
* ```
*/
declare const isNodeFlagSet: (node: ts.Node, flag: ts.NodeFlags) => boolean;
/**
* Test if the given node has the given `ObjectFlags` set.
*
* @category Nodes - Flag Utilities
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isObjectFlagSet(node, ts.ObjectFlags.Anonymous)) {
* // ...
* }
* ```
*/
declare function isObjectFlagSet(objectType: ts.ObjectType, flag: ts.ObjectFlags): boolean;
/**
* Test if the given node has the given `SymbolFlags` set.
*
* @category Nodes - Flag Utilities
* @example
* ```ts
* declare const symbol: ts.Symbol;
*
* if (isSymbolFlagSet(symbol, ts.SymbolFlags.Accessor)) {
* // ...
* }
* ```
*/
declare const isSymbolFlagSet: (symbol: ts.Symbol, flag: ts.SymbolFlags) => boolean;
/**
* Test if the given node has the given `TypeFlags` set.
*
* @category Nodes - Flag Utilities
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isTypeFlagSet(type, ts.TypeFlags.Any)) {
* // ...
* }
* ```
*/
declare const isTypeFlagSet: (type: ts.Type, flag: ts.TypeFlags) => boolean;
/**
* Test if the given iterable includes a modifier of any of the given kinds.
*
* @category Modifier Utilities
* @example
* ```ts
* declare const modifiers: ts.Modifier[];
*
* includesModifier(modifiers, ts.SyntaxKind.AbstractKeyword);
* ```
*/
declare function includesModifier(modifiers: Iterable<ts.Modifier> | undefined, ...kinds: ts.ModifierSyntaxKind[]): boolean;
/**
* An `AssertionExpression` that is declared as const.
*
* @category Node Types
*/
type ConstAssertionExpression = ts.AssertionExpression & {
type: ts.TypeReferenceNode;
typeName: ConstAssertionIdentifier;
};
/**
* An `Identifier` with an `escapedText` value of `"const"`.
*
* @category Node Types
*/
type ConstAssertionIdentifier = ts.Identifier & {
escapedText: ts.__String & "const";
};
/**
* Test if a node is a {@link ConstAssertionExpression}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isConstAssertionExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link ConstAssertionExpression}.
*/
declare function isConstAssertionExpression(node: ts.AssertionExpression): node is ConstAssertionExpression;
/**
* Test if a node is an `IterationStatement`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isIterationStatement(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `IterationStatement`.
*/
declare function isIterationStatement(node: ts.Node): node is ts.IterationStatement;
/**
* Test if a node is a `JSDocNamespaceDeclaration`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJSDocNamespaceDeclaration(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JSDocNamespaceDeclaration`.
*/
declare function isJSDocNamespaceDeclaration(node: ts.Node): node is ts.JSDocNamespaceDeclaration;
/**
* Test if a node is a `JsxTagNamePropertyAccess`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJsxTagNamePropertyAccess(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JsxTagNamePropertyAccess`.
*/
declare function isJsxTagNamePropertyAccess(node: ts.Node): node is ts.JsxTagNamePropertyAccess;
/**
* a `NamedDeclaration` that definitely has a name.
*
* @category Node Types
*/
interface NamedDeclarationWithName extends ts.NamedDeclaration {
name: ts.DeclarationName;
}
/**
* Test if a node is a {@link NamedDeclarationWithName}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNamedDeclarationWithName(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link NamedDeclarationWithName}.
*/
declare function isNamedDeclarationWithName(node: ts.Declaration): node is NamedDeclarationWithName;
/**
* Test if a node is a `NamespaceDeclaration`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNamespaceDeclaration(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `NamespaceDeclaration`.
*/
declare function isNamespaceDeclaration(node: ts.Node): node is ts.NamespaceDeclaration;
/**
* A number or string-like literal.
*
* @category Node Types
*/
type NumericOrStringLikeLiteral = ts.NumericLiteral | ts.StringLiteralLike;
/**
* Test if a node is a {@link NumericOrStringLikeLiteral}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNumericOrStringLikeLiteral(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link NumericOrStringLikeLiteral}.
*/
declare function isNumericOrStringLikeLiteral(node: ts.Node): node is NumericOrStringLikeLiteral;
/**
* Test if a node is a `PropertyAccessEntityNameExpression`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isPropertyAccessEntityNameExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `PropertyAccessEntityNameExpression`.
*/
declare function isPropertyAccessEntityNameExpression(node: ts.Node): node is ts.PropertyAccessEntityNameExpression;
/**
* Test if a node is a `SuperElementAccessExpression`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isSuperElementAccessExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `SuperElementAccessExpression`.
*/
declare function isSuperElementAccessExpression(node: ts.Node): node is ts.SuperElementAccessExpression;
/**
* Test if a node is a `SuperPropertyAccessExpression`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isSuperPropertyAccessExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `SuperPropertyAccessExpression`.
*/
declare function isSuperPropertyAccessExpression(node: ts.Node): node is ts.SuperPropertyAccessExpression;
/**
* A node that represents the any keyword.
*
* @category Node Types
*/
type AnyKeyword = ts.KeywordToken<ts.SyntaxKind.AnyKeyword>;
/**
* A node that represents the bigint keyword.
*
* @category Node Types
*/
type BigIntKeyword = ts.KeywordToken<ts.SyntaxKind.BigIntKeyword>;
/**
* A node that represents the boolean keyword.
*
* @category Node Types
*/
type BooleanKeyword = ts.KeywordToken<ts.SyntaxKind.BooleanKeyword>;
/**
* A node that represents the false keyword.
*
* @category Node Types
*/
type FalseKeyword = ts.KeywordToken<ts.SyntaxKind.FalseKeyword>;
/**
* A node that represents the import keyword.
*
* @category Node Types
*/
type ImportKeyword = ts.KeywordToken<ts.SyntaxKind.ImportKeyword>;
/**
* A node that represents the never keyword.
*
* @category Node Types
*/
type NeverKeyword = ts.KeywordToken<ts.SyntaxKind.NeverKeyword>;
/**
* A node that represents the null keyword.
*
* @category Node Types
*/
type NullKeyword = ts.KeywordToken<ts.SyntaxKind.NullKeyword>;
/**
* A node that represents the number keyword.
*
* @category Node Types
*/
type NumberKeyword = ts.KeywordToken<ts.SyntaxKind.NumberKeyword>;
/**
* A node that represents the object keyword.
*
* @category Node Types
*/
type ObjectKeyword = ts.KeywordToken<ts.SyntaxKind.ObjectKeyword>;
/**
* A node that represents the string keyword.
*
* @category Node Types
*/
type StringKeyword = ts.KeywordToken<ts.SyntaxKind.StringKeyword>;
/**
* A node that represents the super keyword.
*
* @category Node Types
*/
type SuperKeyword = ts.KeywordToken<ts.SyntaxKind.SuperKeyword>;
/**
* A node that represents the symbol keyword.
*
* @category Node Types
*/
type SymbolKeyword = ts.KeywordToken<ts.SyntaxKind.SymbolKeyword>;
/**
* A node that represents the this keyword.
*
* @category Node Types
*/
type ThisKeyword = ts.KeywordToken<ts.SyntaxKind.ThisKeyword>;
/**
* A node that represents the true keyword.
*
* @category Node Types
*/
type TrueKeyword = ts.KeywordToken<ts.SyntaxKind.TrueKeyword>;
/**
* A node that represents the undefined keyword.
*
* @category Node Types
*/
type UndefinedKeyword = ts.KeywordToken<ts.SyntaxKind.UndefinedKeyword>;
/**
* A node that represents the unknown keyword.
*
* @category Node Types
*/
type UnknownKeyword = ts.KeywordToken<ts.SyntaxKind.UnknownKeyword>;
/**
* A node that represents the void keyword.
*
* @category Node Types
*/
type VoidKeyword = ts.KeywordToken<ts.SyntaxKind.VoidKeyword>;
/**
* Test if a node is an `AbstractKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAbstractKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `AbstractKeyword`.
*/
declare function isAbstractKeyword(node: ts.Node): node is ts.AbstractKeyword;
/**
* Test if a node is an `AccessorKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAccessorKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `AccessorKeyword`.
*/
declare function isAccessorKeyword(node: ts.Node): node is ts.AccessorKeyword;
/**
* Test if a node is an {@link AnyKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAnyKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an {@link AnyKeyword}.
*/
declare function isAnyKeyword(node: ts.Node): node is AnyKeyword;
/**
* Test if a node is an `AssertKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAssertKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `AssertKeyword`.
*/
declare function isAssertKeyword(node: ts.Node): node is ts.AssertKeyword;
/**
* Test if a node is an `AssertsKeyword`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isAssertsKeyword`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAssertsKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `AssertsKeyword`.
*/
declare function isAssertsKeyword(node: ts.Node): node is ts.AssertsKeyword;
/**
* Test if a node is an `AsyncKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAsyncKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `AsyncKeyword`.
*/
declare function isAsyncKeyword(node: ts.Node): node is ts.AsyncKeyword;
/**
* Test if a node is an `AwaitKeyword`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isAwaitKeyword`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAwaitKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `AwaitKeyword`.
*/
declare function isAwaitKeyword(node: ts.Node): node is ts.AwaitKeyword;
/**
* Test if a node is a {@link BigIntKeyword}.
*
* @deprecated With TypeScript v5, in favor of typescript's `isBigIntKeyword`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isBigIntKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link BigIntKeyword}.
*/
declare function isBigIntKeyword(node: ts.Node): node is BigIntKeyword;
/**
* Test if a node is a {@link BooleanKeyword}.
*
* @deprecated With TypeScript v5, in favor of typescript's `isBooleanKeyword`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isBooleanKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link BooleanKeyword}.
*/
declare function isBooleanKeyword(node: ts.Node): node is BooleanKeyword;
/**
* Test if a node is a `ColonToken`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isColonToken`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isColonToken(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ColonToken`.
*/
declare function isColonToken(node: ts.Node): node is ts.ColonToken;
/**
* Test if a node is a `ConstKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isConstKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ConstKeyword`.
*/
declare function isConstKeyword(node: ts.Node): node is ts.ConstKeyword;
/**
* Test if a node is a `DeclareKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isDeclareKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `DeclareKeyword`.
*/
declare function isDeclareKeyword(node: ts.Node): node is ts.DeclareKeyword;
/**
* Test if a node is a `DefaultKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isDefaultKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `DefaultKeyword`.
*/
declare function isDefaultKeyword(node: ts.Node): node is ts.DefaultKeyword;
/**
* Test if a node is a `DotToken`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isDotToken(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `DotToken`.
*/
declare function isDotToken(node: ts.Node): node is ts.DotToken;
/**
* Test if a node is an `EndOfFileToken`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isEndOfFileToken(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `EndOfFileToken`.
*/
declare function isEndOfFileToken(node: ts.Node): node is ts.EndOfFileToken;
/**
* Test if a node is an `EqualsGreaterThanToken`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isEqualsGreaterThanToken`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isEqualsGreaterThanToken(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `EqualsGreaterThanToken`.
*/
declare function isEqualsGreaterThanToken(node: ts.Node): node is ts.EqualsGreaterThanToken;
/**
* Test if a node is an `EqualsToken`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isEqualsToken(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `EqualsToken`.
*/
declare function isEqualsToken(node: ts.Node): node is ts.EqualsToken;
/**
* Test if a node is an `ExclamationToken`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isExclamationToken`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isExclamationToken(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `ExclamationToken`.
*/
declare function isExclamationToken(node: ts.Node): node is ts.ExclamationToken;
/**
* Test if a node is an `ExportKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isExportKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `ExportKeyword`.
*/
declare function isExportKeyword(node: ts.Node): node is ts.ExportKeyword;
/**
* Test if a node is a {@link FalseKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isFalseKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link FalseKeyword}.
*/
declare function isFalseKeyword(node: ts.Node): node is FalseKeyword;
/**
* Test if a node is a `FalseLiteral`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isFalseLiteral(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `FalseLiteral`.
*/
declare function isFalseLiteral(node: ts.Node): node is ts.FalseLiteral;
/**
* Test if a node is an `ImportExpression`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isImportExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `ImportExpression`.
*/
declare function isImportExpression(node: ts.Node): node is ts.ImportExpression;
/**
* Test if a node is an {@link ImportKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isImportKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an {@link ImportKeyword}.
*/
declare function isImportKeyword(node: ts.Node): node is ImportKeyword;
/**
* Test if a node is an `InKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isInKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `InKeyword`.
*/
declare function isInKeyword(node: ts.Node): node is ts.InKeyword;
/**
* Test if a node is an `InputFiles`.
*
* @deprecated With TypeScript v5
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isInputFiles(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `InputFiles`.
*/
declare function isInputFiles(node: ts.Node): node is ts.InputFiles;
/**
* Test if a node is a `JSDocText`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJSDocText(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JSDocText`.
*/
declare function isJSDocText(node: ts.Node): node is ts.JSDocText;
/**
* Test if a node is a `JsonMinusNumericLiteral`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJsonMinusNumericLiteral(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JsonMinusNumericLiteral`.
*/
declare function isJsonMinusNumericLiteral(node: ts.Node): node is ts.JsonMinusNumericLiteral;
/**
* Test if a node is a {@link NeverKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNeverKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link NeverKeyword}.
*/
declare function isNeverKeyword(node: ts.Node): node is NeverKeyword;
/**
* Test if a node is a {@link NullKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNullKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link NullKeyword}.
*/
declare function isNullKeyword(node: ts.Node): node is NullKeyword;
/**
* Test if a node is a `NullLiteral`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNullLiteral(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `NullLiteral`.
*/
declare function isNullLiteral(node: ts.Node): node is ts.NullLiteral;
/**
* Test if a node is a {@link NumberKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNumberKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link NumberKeyword}.
*/
declare function isNumberKeyword(node: ts.Node): node is NumberKeyword;
/**
* Test if a node is an {@link ObjectKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isObjectKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an {@link ObjectKeyword}.
*/
declare function isObjectKeyword(node: ts.Node): node is ObjectKeyword;
/**
* Test if a node is an `OutKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isOutKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `OutKeyword`.
*/
declare function isOutKeyword(node: ts.Node): node is ts.OutKeyword;
/**
* Test if a node is an `OverrideKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isOverrideKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `OverrideKeyword`.
*/
declare function isOverrideKeyword(node: ts.Node): node is ts.OverrideKeyword;
/**
* Test if a node is a `PrivateKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isPrivateKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `PrivateKeyword`.
*/
declare function isPrivateKeyword(node: ts.Node): node is ts.PrivateKeyword;
/**
* Test if a node is a `ProtectedKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isProtectedKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ProtectedKeyword`.
*/
declare function isProtectedKeyword(node: ts.Node): node is ts.ProtectedKeyword;
/**
* Test if a node is a `PublicKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isPublicKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `PublicKeyword`.
*/
declare function isPublicKeyword(node: ts.Node): node is ts.PublicKeyword;
/**
* Test if a node is a `QuestionDotToken`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isQuestionDotToken`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isQuestionDotToken(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `QuestionDotToken`.
*/
declare function isQuestionDotToken(node: ts.Node): node is ts.QuestionDotToken;
/**
* Test if a node is a `QuestionToken`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isQuestionToken`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isQuestionToken(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `QuestionToken`.
*/
declare function isQuestionToken(node: ts.Node): node is ts.QuestionToken;
/**
* Test if a node is a `ReadonlyKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isReadonlyKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ReadonlyKeyword`.
*/
declare function isReadonlyKeyword(node: ts.Node): node is ts.ReadonlyKeyword;
/**
* Test if a node is a `StaticKeyword`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isStaticKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `StaticKeyword`.
*/
declare function isStaticKeyword(node: ts.Node): node is ts.StaticKeyword;
/**
* Test if a node is a {@link StringKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isStringKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link StringKeyword}.
*/
declare function isStringKeyword(node: ts.Node): node is StringKeyword;
/**
* Test if a node is a `SuperExpression`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isSuperExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `SuperExpression`.
*/
declare function isSuperExpression(node: ts.Node): node is ts.SuperExpression;
/**
* Test if a node is a {@link SuperKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isSuperKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link SuperKeyword}.
*/
declare function isSuperKeyword(node: ts.Node): node is SuperKeyword;
/**
* Test if a node is a {@link SymbolKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isSymbolKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link SymbolKeyword}.
*/
declare function isSymbolKeyword(node: ts.Node): node is SymbolKeyword;
/**
* Test if a node is a `SyntaxList`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isSyntaxList(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `SyntaxList`.
*/
declare function isSyntaxList(node: ts.Node): node is ts.SyntaxList;
/**
* Test if a node is a `ThisExpression`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isThisExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ThisExpression`.
*/
declare function isThisExpression(node: ts.Node): node is ts.ThisExpression;
/**
* Test if a node is a {@link ThisKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isThisKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link ThisKeyword}.
*/
declare function isThisKeyword(node: ts.Node): node is ThisKeyword;
/**
* Test if a node is a {@link TrueKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isTrueKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link TrueKeyword}.
*/
declare function isTrueKeyword(node: ts.Node): node is TrueKeyword;
/**
* Test if a node is a `TrueLiteral`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isTrueLiteral(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `TrueLiteral`.
*/
declare function isTrueLiteral(node: ts.Node): node is ts.TrueLiteral;
/**
* Test if a node is an {@link UndefinedKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isUndefinedKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an {@link UndefinedKeyword}.
*/
declare function isUndefinedKeyword(node: ts.Node): node is UndefinedKeyword;
/**
* Test if a node is an {@link UnknownKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isUnknownKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an {@link UnknownKeyword}.
*/
declare function isUnknownKeyword(node: ts.Node): node is UnknownKeyword;
/**
* Test if a node is an `UnparsedPrologue`.
*
* @deprecated With TypeScript v5
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isUnparsedPrologue(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `UnparsedPrologue`.
*/
declare function isUnparsedPrologue(node: ts.Node): node is ts.UnparsedPrologue;
/**
* Test if a node is an `UnparsedSyntheticReference`.
*
* @deprecated With TypeScript v5
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isUnparsedSyntheticReference(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `UnparsedSyntheticReference`.
*/
declare function isUnparsedSyntheticReference(node: ts.Node): node is ts.UnparsedSyntheticReference;
/**
* Test if a node is a {@link VoidKeyword}.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isVoidKeyword(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a {@link VoidKeyword}.
*/
declare function isVoidKeyword(node: ts.Node): node is VoidKeyword;
/**
* Test if a node is an `AccessExpression`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAccessExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `AccessExpression`.
*/
declare function isAccessExpression(node: ts.Node): node is ts.AccessExpression;
/**
* Test if a node is an `AccessibilityModifier`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAccessibilityModifier(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `AccessibilityModifier`.
*/
declare function isAccessibilityModifier(node: ts.Node): node is ts.AccessibilityModifier;
/**
* Test if a node is an `AccessorDeclaration`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isAccessor`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAccessorDeclaration(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `AccessorDeclaration`.
*/
declare function isAccessorDeclaration(node: ts.Node): node is ts.AccessorDeclaration;
/**
* Test if a node is an `ArrayBindingElement`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isArrayBindingElement`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isArrayBindingElement(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `ArrayBindingElement`.
*/
declare function isArrayBindingElement(node: ts.Node): node is ts.ArrayBindingElement;
/**
* Test if a node is an `ArrayBindingOrAssignmentPattern`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isArrayBindingOrAssignmentPattern(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `ArrayBindingOrAssignmentPattern`.
*/
declare function isArrayBindingOrAssignmentPattern(node: ts.Node): node is ts.ArrayBindingOrAssignmentPattern;
/**
* Test if a node is an `AssignmentPattern`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isAssignmentPattern(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `AssignmentPattern`.
*/
declare function isAssignmentPattern(node: ts.Node): node is ts.AssignmentPattern;
/**
* Test if a node is a `BindingOrAssignmentElementRestIndicator`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isBindingOrAssignmentElementRestIndicator(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `BindingOrAssignmentElementRestIndicator`.
*/
declare function isBindingOrAssignmentElementRestIndicator(node: ts.Node): node is ts.BindingOrAssignmentElementRestIndicator;
/**
* Test if a node is a `BindingOrAssignmentElementTarget`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isBindingOrAssignmentElementTarget(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `BindingOrAssignmentElementTarget`.
*/
declare function isBindingOrAssignmentElementTarget(node: ts.Node): node is ts.BindingOrAssignmentElementTarget;
/**
* Test if a node is a `BindingOrAssignmentPattern`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isBindingOrAssignmentPattern(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `BindingOrAssignmentPattern`.
*/
declare function isBindingOrAssignmentPattern(node: ts.Node): node is ts.BindingOrAssignmentPattern;
/**
* Test if a node is a `BindingPattern`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isBindingPattern(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `BindingPattern`.
*/
declare function isBindingPattern(node: ts.Node): node is ts.BindingPattern;
/**
* Test if a node is a `BlockLike`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isBlockLike(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `BlockLike`.
*/
declare function isBlockLike(node: ts.Node): node is ts.BlockLike;
/**
* Test if a node is a `BooleanLiteral`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isBooleanLiteral(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `BooleanLiteral`.
*/
declare function isBooleanLiteral(node: ts.Node): node is ts.BooleanLiteral;
/**
* Test if a node is a `ClassLikeDeclaration`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isClassLike`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isClassLikeDeclaration(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ClassLikeDeclaration`.
*/
declare function isClassLikeDeclaration(node: ts.Node): node is ts.ClassLikeDeclaration;
/**
* Test if a node is a `ClassMemberModifier`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isClassMemberModifier(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ClassMemberModifier`.
*/
declare function isClassMemberModifier(node: ts.Node): node is ts.ClassMemberModifier;
/**
* Test if a node is a `DeclarationName`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isDeclarationName(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `DeclarationName`.
*/
declare function isDeclarationName(node: ts.Node): node is ts.DeclarationName;
/**
* Test if a node is a `DeclarationWithTypeParameterChildren`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isDeclarationWithTypeParameterChildren(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `DeclarationWithTypeParameterChildren`.
*/
declare function isDeclarationWithTypeParameterChildren(node: ts.Node): node is ts.DeclarationWithTypeParameterChildren;
/**
* Test if a node is a `DeclarationWithTypeParameters`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isDeclarationWithTypeParameters(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `DeclarationWithTypeParameters`.
*/
declare function isDeclarationWithTypeParameters(node: ts.Node): node is ts.DeclarationWithTypeParameters;
/**
* Test if a node is a `DestructuringPattern`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isDestructuringPattern(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `DestructuringPattern`.
*/
declare function isDestructuringPattern(node: ts.Node): node is ts.DestructuringPattern;
/**
* Test if a node is an `EntityNameExpression`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isEntityNameExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `EntityNameExpression`.
*/
declare function isEntityNameExpression(node: ts.Node): node is ts.EntityNameExpression;
/**
* Test if a node is an `EntityNameOrEntityNameExpression`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isEntityNameOrEntityNameExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `EntityNameOrEntityNameExpression`.
*/
declare function isEntityNameOrEntityNameExpression(node: ts.Node): node is ts.EntityNameOrEntityNameExpression;
/**
* Test if a node is a `ForInOrOfStatement`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isForInOrOfStatement(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ForInOrOfStatement`.
*/
declare function isForInOrOfStatement(node: ts.Node): node is ts.ForInOrOfStatement;
/**
* Test if a node is a `FunctionLikeDeclaration`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isFunctionLike`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isFunctionLikeDeclaration(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `FunctionLikeDeclaration`.
*/
declare function isFunctionLikeDeclaration(node: ts.Node): node is ts.FunctionLikeDeclaration;
/**
* Test if a node is a `HasDecorators`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (hasDecorators(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `HasDecorators`.
*/
declare function hasDecorators(node: ts.Node): node is ts.HasDecorators;
/**
* Test if a node is a `HasExpressionInitializer`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (hasExpressionInitializer(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `HasExpressionInitializer`.
*/
declare function hasExpressionInitializer(node: ts.Node): node is ts.HasExpressionInitializer;
/**
* Test if a node is a `HasInitializer`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (hasInitializer(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `HasInitializer`.
*/
declare function hasInitializer(node: ts.Node): node is ts.HasInitializer;
/**
* Test if a node is a `HasJSDoc`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (hasJSDoc(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `HasJSDoc`.
*/
declare function hasJSDoc(node: ts.Node): node is ts.HasJSDoc;
/**
* Test if a node is a `HasModifiers`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (hasModifiers(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `HasModifiers`.
*/
declare function hasModifiers(node: ts.Node): node is ts.HasModifiers;
/**
* Test if a node is a `HasType`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (hasType(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `HasType`.
*/
declare function hasType(node: ts.Node): node is ts.HasType;
/**
* Test if a node is a `HasTypeArguments`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (hasTypeArguments(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `HasTypeArguments`.
*/
declare function hasTypeArguments(node: ts.Node): node is ts.HasTypeArguments;
/**
* Test if a node is a `JSDocComment`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJSDocComment(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JSDocComment`.
*/
declare function isJSDocComment(node: ts.Node): node is ts.JSDocComment;
/**
* Test if a node is a `JSDocNamespaceBody`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJSDocNamespaceBody(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JSDocNamespaceBody`.
*/
declare function isJSDocNamespaceBody(node: ts.Node): node is ts.JSDocNamespaceBody;
/**
* Test if a node is a `JSDocTypeReferencingNode`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJSDocTypeReferencingNode(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JSDocTypeReferencingNode`.
*/
declare function isJSDocTypeReferencingNode(node: ts.Node): node is ts.JSDocTypeReferencingNode;
/**
* Test if a node is a `JsonObjectExpression`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJsonObjectExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JsonObjectExpression`.
*/
declare function isJsonObjectExpression(node: ts.Node): node is ts.JsonObjectExpression;
/**
* Test if a node is a `JsxAttributeLike`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isJsxAttributeLike`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJsxAttributeLike(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JsxAttributeLike`.
*/
declare function isJsxAttributeLike(node: ts.Node): node is ts.JsxAttributeLike;
/**
* Test if a node is a `JsxAttributeValue`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJsxAttributeValue(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JsxAttributeValue`.
*/
declare function isJsxAttributeValue(node: ts.Node): node is ts.JsxAttributeValue;
/**
* Test if a node is a `JsxChild`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isJsxChild`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJsxChild(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JsxChild`.
*/
declare function isJsxChild(node: ts.Node): node is ts.JsxChild;
/**
* Test if a node is a `JsxTagNameExpression`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isJsxTagNameExpression`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isJsxTagNameExpression(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `JsxTagNameExpression`.
*/
declare function isJsxTagNameExpression(node: ts.Node): node is ts.JsxTagNameExpression;
/**
* Test if a node is a `LiteralToken`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isLiteralToken(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `LiteralToken`.
*/
declare function isLiteralToken(node: ts.Node): node is ts.LiteralToken;
/**
* Test if a node is a `ModuleBody`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isModuleBody`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isModuleBody(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ModuleBody`.
*/
declare function isModuleBody(node: ts.Node): node is ts.ModuleBody;
/**
* Test if a node is a `ModuleName`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isModuleName`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isModuleName(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ModuleName`.
*/
declare function isModuleName(node: ts.Node): node is ts.ModuleName;
/**
* Test if a node is a `ModuleReference`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isModuleReference`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isModuleReference(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ModuleReference`.
*/
declare function isModuleReference(node: ts.Node): node is ts.ModuleReference;
/**
* Test if a node is a `NamedImportBindings`.
*
* @deprecated With TypeScript v5, in favor of typescript's `isNamedImportBindings`.
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNamedImportBindings(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `NamedImportBindings`.
*/
declare function isNamedImportBindings(node: ts.Node): node is ts.NamedImportBindings;
/**
* Test if a node is a `NamedImportsOrExports`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNamedImportsOrExports(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `NamedImportsOrExports`.
*/
declare function isNamedImportsOrExports(node: ts.Node): node is ts.NamedImportsOrExports;
/**
* Test if a node is a `NamespaceBody`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isNamespaceBody(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `NamespaceBody`.
*/
declare function isNamespaceBody(node: ts.Node): node is ts.NamespaceBody;
/**
* Test if a node is an `ObjectBindingOrAssignmentElement`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isObjectBindingOrAssignmentElement(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `ObjectBindingOrAssignmentElement`.
*/
declare function isObjectBindingOrAssignmentElement(node: ts.Node): node is ts.ObjectBindingOrAssignmentElement;
/**
* Test if a node is an `ObjectBindingOrAssignmentPattern`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isObjectBindingOrAssignmentPattern(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `ObjectBindingOrAssignmentPattern`.
*/
declare function isObjectBindingOrAssignmentPattern(node: ts.Node): node is ts.ObjectBindingOrAssignmentPattern;
/**
* Test if a node is an `ObjectTypeDeclaration`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isObjectTypeDeclaration(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `ObjectTypeDeclaration`.
*/
declare function isObjectTypeDeclaration(node: ts.Node): node is ts.ObjectTypeDeclaration;
/**
* Test if a node is a `ParameterPropertyModifier`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isParameterPropertyModifier(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `ParameterPropertyModifier`.
*/
declare function isParameterPropertyModifier(node: ts.Node): node is ts.ParameterPropertyModifier;
/**
* Test if a node is a `PropertyNameLiteral`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isPropertyNameLiteral(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `PropertyNameLiteral`.
*/
declare function isPropertyNameLiteral(node: ts.Node): node is ts.PropertyNameLiteral;
/**
* Test if a node is a `PseudoLiteralToken`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isPseudoLiteralToken(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `PseudoLiteralToken`.
*/
declare function isPseudoLiteralToken(node: ts.Node): node is ts.PseudoLiteralToken;
/**
* Test if a node is a `SignatureDeclaration`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isSignatureDeclaration(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `SignatureDeclaration`.
*/
declare function isSignatureDeclaration(node: ts.Node): node is ts.SignatureDeclaration;
/**
* Test if a node is a `SuperProperty`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isSuperProperty(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `SuperProperty`.
*/
declare function isSuperProperty(node: ts.Node): node is ts.SuperProperty;
/**
* Test if a node is a `TypeOnlyCompatibleAliasDeclaration`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isTypeOnlyCompatibleAliasDeclaration(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `TypeOnlyCompatibleAliasDeclaration`.
*/
declare function isTypeOnlyCompatibleAliasDeclaration(node: ts.Node): node is ts.TypeOnlyCompatibleAliasDeclaration;
/**
* Test if a node is a `TypeReferenceType`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isTypeReferenceType(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `TypeReferenceType`.
*/
declare function isTypeReferenceType(node: ts.Node): node is ts.TypeReferenceType;
/**
* Test if a node is an `UnionOrIntersectionTypeNode`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isUnionOrIntersectionTypeNode(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `UnionOrIntersectionTypeNode`.
*/
declare function isUnionOrIntersectionTypeNode(node: ts.Node): node is ts.UnionOrIntersectionTypeNode;
/**
* Test if a node is an `UnparsedSourceText`.
*
* @deprecated With TypeScript v5
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isUnparsedSourceText(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be an `UnparsedSourceText`.
*/
declare function isUnparsedSourceText(node: ts.Node): node is ts.UnparsedSourceText;
/**
* Test if a node is a `VariableLikeDeclaration`.
*
* @category Nodes - Type Guards
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isVariableLikeDeclaration(node)) {
* // ...
* }
* ```
*
* @returns Whether the given node appears to be a `VariableLikeDeclaration`.
*/
declare function isVariableLikeDeclaration(node: ts.Node): node is ts.VariableLikeDeclaration;
/**
* Is the node a scope boundary, specifically due to it being a function.
*
* @category Scope Utilities
* @example
* ```ts
* declare const node: ts.Node;
*
* if (isFunctionScopeBoundary(node, ts.ObjectFlags.Anonymous)) {
* // ...
* }
* ```
*/
declare function isFunctionScopeBoundary(node: ts.Node): boolean;
/**
* Test of the kind given is for assignment.
*
* @category Syntax Utilities
* @example
* ```ts
* declare const kind: ts.SyntaxKind;
*
* isAssignmentKind(kind);
* ```
*/
declare function isAssignmentKind(kind: ts.SyntaxKind): boolean;
/**
* Test if a string is numeric.
*
* @category Syntax Utilities
* @example
* ```ts
* isNumericPropertyName("abc"); // false
* isNumericPropertyName("123"); // true
* ```
*/
declare function isNumericPropertyName(name: string | ts.__String): boolean;
/**
* Determines whether the given text can be used to access a property with a `PropertyAccessExpression` while preserving the property's name.
*
* @category Syntax Utilities
* @example
* ```ts
* isValidPropertyAccess("abc"); // true
* isValidPropertyAccess("123"); // false
* ```
*/
declare function isValidPropertyAccess(text: string, languageVersion?: ts.ScriptTarget): boolean;
/**
* Callback type used for {@link forEachToken}.
*
* @category Callbacks
*/
type ForEachTokenCallback = (token: ts.Node) => void;
/**
* Iterates over all tokens of `node`
*
* @category Nodes - Other Utilities
* @example
* ```ts
* declare const node: ts.Node;
*
* forEachToken(node, (token) => {
* console.log("Found token:", token.getText());
* });
* ```
*
* @param node - The node whose tokens should be visited
* @param callback - Is called for every token contained in `node`
*/
declare function forEachToken(node: ts.Node, callback: ForEachTokenCallback, sourceFile?: ts.SourceFile): void;
/**
* Get the `CallSignatures` of the given type.
*
* @category Types - Getters
* @example
* ```ts
* declare const type: ts.Type;
*
* getCallSignaturesOfType(type);
* ```
*/
declare function getCallSignaturesOfType(type: ts.Type): readonly ts.Signature[];
/**
* Get the property with the given name on the given type (if it exists).
*
* @category Types - Getters
* @example
* ```ts
* declare const property: ts.Symbol;
* declare const type: ts.Type;
*
* getPropertyOfType(type, property.getEscapedName());
* ```
*/
declare function getPropertyOfType(type: ts.Type, name: ts.__String): ts.Symbol | undefined;
/**
* Retrieves a type symbol corresponding to a well-known string name.
*
* @category Types - Getters
* @example
* ```ts
* declare const type: ts.Type;
* declare const typeChecker: ts.TypeChecker;
*
* getWellKnownSymbolPropertyOfType(type, "asyncIterator", typeChecker);
* ```
*/
declare function getWellKnownSymbolPropertyOfType(type: ts.Type, wellKnownSymbolName: string, typeChecker: ts.TypeChecker): ts.Symbol | undefined;
/**
* A "any" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicAnyType extends IntrinsicType {
intrinsicName: "any";
}
/**
* Determines whether the given type is the "any" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicAnyType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicAnyType(type: ts.Type): type is IntrinsicAnyType;
/**
* A "boolean" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicBooleanType extends IntrinsicType {
intrinsicName: "boolean";
}
/**
* Determines whether the given type is the "boolean" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicBooleanType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicBooleanType(type: ts.Type): type is IntrinsicBooleanType;
/**
* A "bigint" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicBigIntType extends IntrinsicType {
intrinsicName: "bigint";
}
/**
* Determines whether the given type is the "bigint" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicBigIntType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicBigIntType(type: ts.Type): type is IntrinsicBigIntType;
/**
* An "error" intrinsic type.
*
* This refers to a type generated when TypeScript encounters an error while
* trying to resolve the type.
*
* @category Type Types
*/
interface IntrinsicErrorType extends IntrinsicType {
intrinsicName: "error";
}
/**
* Determines whether the given type is the "error" intrinsic type.
*
* The intrinsic error type occurs when TypeScript encounters an error while
* trying to resolve the type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicErrorType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicErrorType(type: ts.Type): type is IntrinsicErrorType;
/**
* A "symbol" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicESSymbolType extends IntrinsicType {
intrinsicName: "symbol";
}
/**
* Determines whether the given type is the "symbol" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicESSymbolType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicESSymbolType(type: ts.Type): type is IntrinsicESSymbolType;
/**
* An intrinsic type.
*
* @category Type Types
*/
interface IntrinsicType extends ts.Type {
intrinsicName: string;
objectFlags: ts.ObjectFlags;
}
/**
* Test if a type is an {@link IntrinsicType}.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicType(type: ts.Type): type is IntrinsicType;
/**
* A "never" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicNeverType extends IntrinsicType {
intrinsicName: "never";
}
/**
* Determines whether the given type is the "never" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicNeverType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicNeverType(type: ts.Type): type is IntrinsicNeverType;
/**
* A non-primitive intrinsic type.
* E.g. An "object" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicNonPrimitiveType extends IntrinsicType {
intrinsicName: "";
}
/**
* Determines whether the given type is a non-primitive intrinsic type.
* E.g. An "object" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicNonPrimitiveType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicNonPrimitiveType(type: ts.Type): type is IntrinsicNonPrimitiveType;
/**
* A "null" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicNullType extends IntrinsicType {
intrinsicName: "null";
}
/**
* Determines whether the given type is the "null" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicNullType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicNullType(type: ts.Type): type is IntrinsicNullType;
/**
* A "number" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicNumberType extends IntrinsicType {
intrinsicName: "number";
}
/**
* Determines whether the given type is the "number" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicNumberType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicNumberType(type: ts.Type): type is IntrinsicNumberType;
/**
* A "string" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicStringType extends IntrinsicType {
intrinsicName: "string";
}
/**
* Determines whether the given type is the "string" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicStringType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicStringType(type: ts.Type): type is IntrinsicStringType;
/**
* An "undefined" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicUndefinedType extends IntrinsicType {
intrinsicName: "undefined";
}
/**
* Determines whether the given type is the "undefined" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicUndefinedType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicUndefinedType(type: ts.Type): type is IntrinsicUndefinedType;
/**
* An "unknown" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicUnknownType extends IntrinsicType {
intrinsicName: "unknown";
}
/**
* Determines whether the given type is the "unknown" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicUnknownType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicUnknownType(type: ts.Type): type is IntrinsicUnknownType;
/**
* A "void" intrinsic type.
*
* @category Type Types
*/
interface IntrinsicVoidType extends IntrinsicType {
intrinsicName: "void";
}
/**
* Determines whether the given type is the "void" intrinsic type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntrinsicVoidType(type)) {
* // ...
* }
* ```
*/
declare function isIntrinsicVoidType(type: ts.Type): type is IntrinsicVoidType;
/**
* A type that is both an {@link IntrinsicType} and a `FreshableType`
*
* @category Type Types
*/
interface FreshableIntrinsicType extends ts.FreshableType, IntrinsicType {
}
/**
* Test if a type is a `FreshableIntrinsicType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isFreshableIntrinsicType(type)) {
* // ...
* }
*/
declare function isFreshableIntrinsicType(type: ts.Type): type is FreshableIntrinsicType;
/**
* Test if a type is a `TupleTypeReference`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isTupleTypeReference(type)) {
* // ...
* }
*/
declare function isTupleTypeReference(type: ts.Type): type is ts.TupleTypeReference;
/**
* A boolean literal.
* i.e. Either a "true" or "false" literal.
*
* @category Type Types
*/
interface BooleanLiteralType extends UnknownLiteralType {
intrinsicName: "true" | "false";
value: boolean;
}
/**
* Determines whether the given type is a boolean literal type.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isBooleanLiteralType(type)) {
* // ...
* }
* ```
*/
declare function isBooleanLiteralType(type: ts.Type): type is BooleanLiteralType;
/**
* Test if a type is a `BigIntLiteralType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isBigIntLiteralType(type)) {
* // ...
* }
* ```
*/
declare function isBigIntLiteralType(type: ts.Type): type is ts.BigIntLiteralType;
/**
* A "false" literal.
*
* @category Type Types
*/
interface FalseLiteralType extends BooleanLiteralType {
intrinsicName: "false";
value: false;
}
/**
* Determines whether the given type is a boolean literal type for "false".
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isFalseLiteralType(type)) {
* // ...
* }
* ```
*/
declare function isFalseLiteralType(type: ts.Type): type is FalseLiteralType;
/**
* Test if a type is a `LiteralType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isLiteralType(type)) {
* // ...
* }
* ```
*/
declare function isLiteralType(type: ts.Type): type is ts.LiteralType;
/**
* Test if a type is a `NumberLiteralType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isNumberLiteralType(type)) {
* // ...
* }
* ```
*/
declare function isNumberLiteralType(type: ts.Type): type is ts.NumberLiteralType;
/**
* Test if a type is a `StringLiteralType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isStringLiteralType(type)) {
* // ...
* }
* ```
*/
declare function isStringLiteralType(type: ts.Type): type is ts.StringLiteralType;
/**
* Test if a type is a `TemplateLiteralType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isTemplateLiteralType(type)) {
* // ...
* }
* ```
*/
declare function isTemplateLiteralType(type: ts.Type): type is ts.TemplateLiteralType;
/**
* A "true" literal.
*
* @category Type Types
*/
interface TrueLiteralType extends BooleanLiteralType {
intrinsicName: "true";
value: true;
}
/**
* Determines whether the given type is a boolean literal type for "true".
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isTrueLiteralType(type)) {
* // ...
* }
* ```
*/
declare function isTrueLiteralType(type: ts.Type): type is TrueLiteralType;
/**
* `LiteralType` from typescript except that it allows for it to work on arbitrary types.
*
* @category Type Types
*/
interface UnknownLiteralType extends FreshableIntrinsicType {
value: unknown;
}
/**
* Test if a type is a {@link UnknownLiteralType}.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isUnknownLiteralType(type)) {
* // ...
* }
* ```
*/
declare function isUnknownLiteralType(type: ts.Type): type is UnknownLiteralType;
/**
* Test if a type is a `EvolvingArrayType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isEvolvingArrayType(type)) {
* // ...
* }
* ```
*/
declare function isEvolvingArrayType(type: ts.Type): type is ts.EvolvingArrayType;
/**
* Test if a type is a `TupleType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isTupleType(type)) {
* // ...
* }
* ```
*/
declare function isTupleType(type: ts.Type): type is ts.TupleType;
/**
* Test if a type is a `TypeReference`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isTypeReference(type)) {
* // ...
* }
* ```
*/
declare function isTypeReference(type: ts.Type): type is ts.TypeReference;
/**
* Test if a type is a `ConditionalType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isConditionalType(type)) {
* // ...
* }
* ```
*/
declare function isConditionalType(type: ts.Type): type is ts.ConditionalType;
/**
* Test if a type is a `EnumType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isEnumType(type)) {
* // ...
* }
* ```
*/
declare function isEnumType(type: ts.Type): type is ts.EnumType;
/**
* Test if a type is a `FreshableType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isFreshableType(type)) {
* // ...
* }
* ```
*/
declare function isFreshableType(type: ts.Type): type is ts.FreshableType;
/**
* Test if a type is a `IndexType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIndexType(type)) {
* // ...
* }
* ```
*/
declare function isIndexType(type: ts.Type): type is ts.IndexType;
/**
* Test if a type is a `IndexedAccessType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIndexedAccessType(type)) {
* // ...
* }
* ```
*/
declare function isIndexedAccessType(type: ts.Type): type is ts.IndexedAccessType;
/**
* Test if a type is a `InstantiableType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isInstantiableType(type)) {
* // ...
* }
* ```
*/
declare function isInstantiableType(type: ts.Type): type is ts.InstantiableType;
/**
* Test if a type is a `IntersectionType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isIntersectionType(type)) {
* // ...
* }
* ```
*/
declare function isIntersectionType(type: ts.Type): type is ts.IntersectionType;
/**
* Test if a type is a `ObjectType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isObjectType(type)) {
* // ...
* }
* ```
*/
declare function isObjectType(type: ts.Type): type is ts.ObjectType;
/**
* Test if a type is a `StringMappingType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isStringMappingType(type)) {
* // ...
* }
* ```
*/
declare function isStringMappingType(type: ts.Type): type is ts.StringMappingType;
/**
* Test if a type is a `SubstitutionType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isSubstitutionType(type)) {
* // ...
* }
* ```
*/
declare function isSubstitutionType(type: ts.Type): type is ts.SubstitutionType;
/**
* Test if a type is a `TypeParameter`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isTypeParameter(type)) {
* // ...
* }
* ```
*/
declare function isTypeParameter(type: ts.Type): type is ts.TypeParameter;
/**
* Test if a type is a `TypeVariable`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isTypeVariable(type)) {
* // ...
* }
* ```
*/
declare function isTypeVariable(type: ts.Type): type is ts.TypeVariable;
/**
* Test if a type is a `UnionType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isUnionType(type)) {
* // ...
* }
* ```
*/
declare function isUnionType(type: ts.Type): type is ts.UnionType;
/**
* Test if a type is a `UnionOrIntersectionType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isUnionOrIntersectionType(type)) {
* // ...
* }
* ```
*/
declare function isUnionOrIntersectionType(type: ts.Type): type is ts.UnionOrIntersectionType;
/**
* Test if a type is a `UniqueESSymbolType`.
*
* @category Types - Type Guards
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isUniqueESSymbolType(type)) {
* // ...
* }
* ```
*/
declare function isUniqueESSymbolType(type: ts.Type): type is ts.UniqueESSymbolType;
/**
* Determines whether a type is definitely falsy. This function doesn't unwrap union types.
*
* @category Types - Utilities
* @example
* ```ts
* declare const type: ts.Type;
*
* if (isFalsyType(type)) {
* // ...
* }
* ```
*/
declare function isFalsyType(type: ts.Type): boolean;
/**
* Get the union type parts of the given type.
*
* If the given type is not a union type, an array contain only that type will be returned.
*
* @category Types - Utilities
* @example
* ```ts
* declare const type: ts.Type;
*
* for (const typePart of intersectionTypeParts(type)) {
* // ...
* }
* ```
*/
declare function intersectionTypeParts(type: ts.Type): ts.Type[];
/**
* Determines whether writing to a certain property of a given type is allowed.
*
* @category Types - Utilities
* @example
* ```ts
* declare const property: ts.Symbol;
* declare const type: ts.Type;
* declare const typeChecker: ts.TypeChecker;
*
* if (isPropertyReadonlyInType(type, property.getEscapedName(), typeChecker)) {
* // ...
* }
* ```
*/
declare function isPropertyReadonlyInType(type: ts.Type, name: ts.__String, typeChecker: ts.TypeChecker): boolean;
/**
* Determines whether a type is thenable and thus can be used with `await`.
*
* @category Types - Utilities
* @example
* ```ts
* declare const node: ts.Node;
* declare const type: ts.Type;
* declare const typeChecker: ts.TypeChecker;
*
* if (isThenableType(typeChecker, node, type)) {
* // ...
* }
* ```
*/
declare function isThenableType(typeChecker: ts.TypeChecker, node: ts.Node, type: ts.Type): boolean;
/**
* Determines whether a type is thenable and thus can be used with `await`.
*
* @category Types - Utilities
* @example
* ```ts
* declare const expression: ts.Expression;
* declare const typeChecker: ts.TypeChecker;
*
* if (isThenableType(typeChecker, expression)) {
* // ...
* }
* ```
*
* @example
* ```ts
* declare const expression: ts.Expression;
* declare const typeChecker: ts.TypeChecker;
* declare const type: ts.Type;
*
* if (isThenableType(typeChecker, expression, type)) {
* // ...
* }
* ```
*/
declare function isThenableType(typeChecker: ts.TypeChecker, node: ts.Expression, type?: ts.Type): boolean;
/**
* Test if the given symbol has a readonly declaration.
*
* @category Symbols - Utilities
* @example
* ```ts
* declare const symbol: ts.Symbol;
* declare const typeChecker: ts.TypeChecker;
*
* if (symbolHasReadonlyDeclaration(symbol, typeChecker)) {
* // ...
* }
* ```
*/
declare function symbolHasReadonlyDeclaration(symbol: ts.Symbol, typeChecker: ts.TypeChecker): boolean;
/**
* Get the union type parts of the given type.
*
* If the given type is not a union type, an array contain only that type will be returned.
*
* @category Types - Utilities
* @example
* ```ts
* declare const type: ts.Type;
*
* for (const typePart of unionTypeParts(type)) {
* // ...
* }
* ```
*/
declare function unionTypeParts(type: ts.Type): ts.Type[];
export { AnyKeyword, BigIntKeyword, BooleanCompilerOptions, BooleanKeyword, BooleanLiteralType, ConstAssertionExpression, ConstAssertionIdentifier, FalseKeyword, FalseLiteralType, ForEachCommentCallback, ForEachTokenCallback, FreshableIntrinsicType, ImportKeyword, IntrinsicAnyType, IntrinsicBigIntType, IntrinsicBooleanType, IntrinsicESSymbolType, IntrinsicErrorType, IntrinsicNeverType, IntrinsicNonPrimitiveType, IntrinsicNullType, IntrinsicNumberType, IntrinsicStringType, IntrinsicType, IntrinsicUndefinedType, IntrinsicUnknownType, IntrinsicVoidType, NamedDeclarationWithName, NeverKeyword, NullKeyword, NumberKeyword, NumericOrStringLikeLiteral, ObjectKeyword, StrictCompilerOption, StringKeyword, SuperKeyword, SymbolKeyword, ThisKeyword, TrueKeyword, TrueLiteralType, UndefinedKeyword, UnknownKeyword, UnknownLiteralType, VoidKeyword, forEachComment, forEachToken, getCallSignaturesOfType, getPropertyOfType, getWellKnownSymbolPropertyOfType, hasDecorators, hasExpressionInitializer, hasInitializer, hasJSDoc, hasModifiers, hasType, hasTypeArguments, includesModifier, intersectionTypeParts, isAbstractKeyword, isAccessExpression, isAccessibilityModifier, isAccessorDeclaration, isAccessorKeyword, isAnyKeyword, isArrayBindingElement, isArrayBindingOrAssignmentPattern, isAssertKeyword, isAssertsKeyword, isAssignmentKind, isAssignmentPattern, isAsyncKeyword, isAwaitKeyword, isBigIntKeyword, isBigIntLiteralType, isBindingOrAssignmentElementRestIndicator, isBindingOrAssignmentElementTarget, isBindingOrAssignmentPattern, isBindingPattern, isBlockLike, isBooleanKeyword, isBooleanLiteral, isBooleanLiteralType, isClassLikeDeclaration, isClassMemberModifier, isColonToken, isCompilerOptionEnabled, isConditionalType, isConstAssertionExpression, isConstKeyword, isDeclarationName, isDeclarationWithTypeParameterChildren, isDeclarationWithTypeParameters, isDeclareKeyword, isDefaultKeyword, isDestructuringPattern, isDotToken, isEndOfFileToken, isEntityNameExpression, isEntityNameOrEntityNameExpression, isEnumType, isEqualsGreaterThanToken, isEqualsToken, isEvolvingArrayType, isExclamationToken, isExportKeyword, isFalseKeyword, isFalseLiteral, isFalseLiteralType, isFalsyType, isForInOrOfStatement, isFreshableIntrinsicType, isFreshableType, isFunctionLikeDeclaration, isFunctionScopeBoundary, isImportExpression, isImportKeyword, isInKeyword, isIndexType, isIndexedAccessType, isInputFiles, isInstantiableType, isIntersectionType, isIntrinsicAnyType, isIntrinsicBigIntType, isIntrinsicBooleanType, isIntrinsicESSymbolType, isIntrinsicErrorType, isIntrinsicNeverType, isIntrinsicNonPrimitiveType, isIntrinsicNullType, isIntrinsicNumberType, isIntrinsicStringType, isIntrinsicType, isIntrinsicUndefinedType, isIntrinsicUnknownType, isIntrinsicVoidType, isIterationStatement, isJSDocComment, isJSDocNamespaceBody, isJSDocNamespaceDeclaration, isJSDocText, isJSDocTypeReferencingNode, isJsonMinusNumericLiteral, isJsonObjectExpression, isJsxAttributeLike, isJsxAttributeValue, isJsxChild, isJsxTagNameExpression, isJsxTagNamePropertyAccess, isLiteralToken, isLiteralType, isModifierFlagSet, isModuleBody, isModuleName, isModuleReference, isNamedDeclarationWithName, isNamedImportBindings, isNamedImportsOrExports, isNamespaceBody, isNamespaceDeclaration, isNeverKeyword, isNodeFlagSet, isNullKeyword, isNullLiteral, isNumberKeyword, isNumberLiteralType, isNumericOrStringLikeLiteral, isNumericPropertyName, isObjectBindingOrAssignmentElement, isObjectBindingOrAssignmentPattern, isObjectFlagSet, isObjectKeyword, isObjectType, isObjectTypeDeclaration, isOutKeyword, isOverrideKeyword, isParameterPropertyModifier, isPrivateKeyword, isPropertyAccessEntityNameExpression, isPropertyNameLiteral, isPropertyReadonlyInType, isProtectedKeyword, isPseudoLiteralToken, isPublicKeyword, isQuestionDotToken, isQuestionToken, isReadonlyKeyword, isSignatureDeclaration, isStaticKeyword, isStrictCompilerOptionEnabled, isStringKeyword, isStringLiteralType, isStringMappingType, isSubstitutionType, isSuperElementAccessExpression, isSuperExpression, isSuperKeyword, isSuperProperty, isSuperPropertyAccessExpression, isSymbolFlagSet, isSymbolKeyword, isSyntaxList, isTemplateLiteralType, isThenableType, isThisExpression, isThisKeyword, isTrueKeyword, isTrueLiteral, isTrueLiteralType, isTupleType, isTupleTypeReference, isTypeFlagSet, isTypeOnlyCompatibleAliasDeclaration, isTypeParameter, isTypeReference, isTypeReferenceType, isTypeVariable, isUndefinedKeyword, isUnionOrIntersectionType, isUnionOrIntersectionTypeNode, isUnionType, isUniqueESSymbolType, isUnknownKeyword, isUnknownLiteralType, isUnparsedPrologue, isUnparsedSourceText, isUnparsedSyntheticReference, isValidPropertyAccess, isVariableLikeDeclaration, isVoidKeyword, symbolHasReadonlyDeclaration, unionTypeParts };