mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-06 02:33:53 -06:00
Export more Node tests for use in public API (#52284)
This commit is contained in:
parent
e474b3df69
commit
35d76b0d38
@ -292,27 +292,22 @@ export function isAsteriskToken(node: Node): node is AsteriskToken {
|
||||
return node.kind === SyntaxKind.AsteriskToken;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isExclamationToken(node: Node): node is ExclamationToken {
|
||||
return node.kind === SyntaxKind.ExclamationToken;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isQuestionToken(node: Node): node is QuestionToken {
|
||||
return node.kind === SyntaxKind.QuestionToken;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isColonToken(node: Node): node is ColonToken {
|
||||
return node.kind === SyntaxKind.ColonToken;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isQuestionDotToken(node: Node): node is QuestionDotToken {
|
||||
return node.kind === SyntaxKind.QuestionDotToken;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isEqualsGreaterThanToken(node: Node): node is EqualsGreaterThanToken {
|
||||
return node.kind === SyntaxKind.EqualsGreaterThanToken;
|
||||
}
|
||||
@ -344,12 +339,10 @@ export function isAsyncModifier(node: Node): node is AsyncKeyword {
|
||||
return node.kind === SyntaxKind.AsyncKeyword;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isAssertsKeyword(node: Node): node is AssertsKeyword {
|
||||
return node.kind === SyntaxKind.AssertsKeyword;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isAwaitKeyword(node: Node): node is AwaitKeyword {
|
||||
return node.kind === SyntaxKind.AwaitKeyword;
|
||||
}
|
||||
|
||||
@ -111,8 +111,6 @@ import {
|
||||
isSpreadElement,
|
||||
isStringLiteral,
|
||||
isThisTypeNode,
|
||||
isTypeNode,
|
||||
isTypeParameterDeclaration,
|
||||
isVariableDeclarationList,
|
||||
JSDocNamespaceBody,
|
||||
JSDocTypeAssertion,
|
||||
@ -143,7 +141,6 @@ import {
|
||||
NumericLiteral,
|
||||
ObjectLiteralElementLike,
|
||||
ObjectLiteralExpression,
|
||||
or,
|
||||
OuterExpression,
|
||||
OuterExpressionKinds,
|
||||
outFile,
|
||||
@ -178,7 +175,6 @@ import {
|
||||
ThisTypeNode,
|
||||
Token,
|
||||
TypeNode,
|
||||
TypeParameterDeclaration,
|
||||
} from "../_namespaces/ts";
|
||||
|
||||
// Compound nodes
|
||||
@ -629,7 +625,7 @@ export function isJSDocTypeAssertion(node: Node): node is JSDocTypeAssertion {
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function getJSDocTypeAssertionType(node: JSDocTypeAssertion) {
|
||||
export function getJSDocTypeAssertionType(node: JSDocTypeAssertion): TypeNode {
|
||||
const type = getJSDocType(node);
|
||||
Debug.assertIsDefined(type);
|
||||
return type;
|
||||
@ -1160,18 +1156,25 @@ export function canHaveIllegalModifiers(node: Node): node is HasIllegalModifiers
|
||||
|| kind === SyntaxKind.NamespaceExportDeclaration;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export const isTypeNodeOrTypeParameterDeclaration = or(isTypeNode, isTypeParameterDeclaration) as (node: Node) => node is TypeNode | TypeParameterDeclaration;
|
||||
/** @internal */
|
||||
export const isQuestionOrExclamationToken = or(isQuestionToken, isExclamationToken) as (node: Node) => node is QuestionToken | ExclamationToken;
|
||||
/** @internal */
|
||||
export const isIdentifierOrThisTypeNode = or(isIdentifier, isThisTypeNode) as (node: Node) => node is Identifier | ThisTypeNode;
|
||||
/** @internal */
|
||||
export const isReadonlyKeywordOrPlusOrMinusToken = or(isReadonlyKeyword, isPlusToken, isMinusToken) as (node: Node) => node is ReadonlyKeyword | PlusToken | MinusToken;
|
||||
/** @internal */
|
||||
export const isQuestionOrPlusOrMinusToken = or(isQuestionToken, isPlusToken, isMinusToken) as (node: Node) => node is QuestionToken | PlusToken | MinusToken;
|
||||
/** @internal */
|
||||
export const isModuleName = or(isIdentifier, isStringLiteral) as (node: Node) => node is ModuleName;
|
||||
export function isQuestionOrExclamationToken(node: Node): node is QuestionToken | ExclamationToken {
|
||||
return isQuestionToken(node) || isExclamationToken(node);
|
||||
}
|
||||
|
||||
export function isIdentifierOrThisTypeNode(node: Node): node is Identifier | ThisTypeNode {
|
||||
return isIdentifier(node) || isThisTypeNode(node);
|
||||
}
|
||||
|
||||
export function isReadonlyKeywordOrPlusOrMinusToken(node: Node): node is ReadonlyKeyword | PlusToken | MinusToken {
|
||||
return isReadonlyKeyword(node) || isPlusToken(node) || isMinusToken(node);
|
||||
}
|
||||
|
||||
export function isQuestionOrPlusOrMinusToken(node: Node): node is QuestionToken | PlusToken | MinusToken {
|
||||
return isQuestionToken(node) || isPlusToken(node) || isMinusToken(node);
|
||||
}
|
||||
|
||||
export function isModuleName(node: Node): node is ModuleName {
|
||||
return isIdentifier(node) || isStringLiteral(node);
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isLiteralTypeLikeExpression(node: Node): node is NullLiteral | BooleanLiteral | LiteralExpression | PrefixUnaryExpression {
|
||||
@ -1278,7 +1281,6 @@ function isBinaryOperator(kind: SyntaxKind): kind is BinaryOperator {
|
||||
|| kind === SyntaxKind.CommaToken;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isBinaryOperatorToken(node: Node): node is BinaryOperatorToken {
|
||||
return isBinaryOperator(node.kind);
|
||||
}
|
||||
|
||||
@ -1790,7 +1790,6 @@ export function isAssignmentPattern(node: Node): node is AssignmentPattern {
|
||||
}
|
||||
|
||||
|
||||
/** @internal */
|
||||
export function isArrayBindingElement(node: Node): node is ArrayBindingElement {
|
||||
const kind = node.kind;
|
||||
return kind === SyntaxKind.BindingElement
|
||||
@ -1930,7 +1929,6 @@ export function isTemplateLiteral(node: Node): node is TemplateLiteral {
|
||||
|| kind === SyntaxKind.NoSubstitutionTemplateLiteral;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isLeftHandSideExpression(node: Node): node is LeftHandSideExpression {
|
||||
return isLeftHandSideExpressionKind(skipPartiallyEmittedExpressions(node).kind);
|
||||
}
|
||||
@ -2007,13 +2005,8 @@ export function isUnaryExpressionWithWrite(expr: Node): expr is PrefixUnaryExpre
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* See isExpression; not for use in transforms.
|
||||
* @internal
|
||||
*/
|
||||
export function isLiteralTypeLiteral(node: Node): node is NullLiteral | BooleanLiteral | LiteralExpression | PrefixUnaryExpression {
|
||||
node = skipPartiallyEmittedExpressions(node);
|
||||
switch (skipPartiallyEmittedExpressions(node).kind) {
|
||||
switch (node.kind) {
|
||||
case SyntaxKind.NullKeyword:
|
||||
case SyntaxKind.TrueKeyword:
|
||||
case SyntaxKind.FalseKeyword:
|
||||
@ -2026,9 +2019,6 @@ export function isLiteralTypeLiteral(node: Node): node is NullLiteral | BooleanL
|
||||
|
||||
/**
|
||||
* Determines whether a node is an expression based only on its kind.
|
||||
* Use `isExpressionNode` if not in transforms.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
export function isExpression(node: Node): node is Expression {
|
||||
return isExpressionKind(skipPartiallyEmittedExpressions(node).kind);
|
||||
@ -2111,7 +2101,6 @@ export function isForInOrOfStatement(node: Node): node is ForInOrOfStatement {
|
||||
|
||||
// Element
|
||||
|
||||
/** @internal */
|
||||
export function isConciseBody(node: Node): node is ConciseBody {
|
||||
return isBlock(node)
|
||||
|| isExpression(node);
|
||||
@ -2122,13 +2111,11 @@ export function isFunctionBody(node: Node): node is FunctionBody {
|
||||
return isBlock(node);
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isForInitializer(node: Node): node is ForInitializer {
|
||||
return isVariableDeclarationList(node)
|
||||
|| isExpression(node);
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isModuleBody(node: Node): node is ModuleBody {
|
||||
const kind = node.kind;
|
||||
return kind === SyntaxKind.ModuleBlock
|
||||
@ -2150,7 +2137,6 @@ export function isJSDocNamespaceBody(node: Node): node is JSDocNamespaceBody {
|
||||
|| kind === SyntaxKind.ModuleDeclaration;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isNamedImportBindings(node: Node): node is NamedImportBindings {
|
||||
const kind = node.kind;
|
||||
return kind === SyntaxKind.NamedImports
|
||||
@ -2376,7 +2362,6 @@ export function isStatementButNotDeclaration(node: Node): node is Statement {
|
||||
return isStatementKindButNotDeclarationKind(node.kind);
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isStatement(node: Node): node is Statement {
|
||||
const kind = node.kind;
|
||||
return isStatementKindButNotDeclarationKind(kind)
|
||||
@ -2394,6 +2379,7 @@ function isBlockStatement(node: Node): node is Block {
|
||||
return !isFunctionBlock(node);
|
||||
}
|
||||
|
||||
// TODO(jakebailey): should we be exporting this function and not isStatement?
|
||||
/**
|
||||
* NOTE: This is similar to `isStatement` but does not access parent pointers.
|
||||
*
|
||||
@ -2408,7 +2394,6 @@ export function isStatementOrBlock(node: Node): node is Statement | Block {
|
||||
|
||||
// Module references
|
||||
|
||||
/** @internal */
|
||||
export function isModuleReference(node: Node): node is ModuleReference {
|
||||
const kind = node.kind;
|
||||
return kind === SyntaxKind.ExternalModuleReference
|
||||
@ -2418,7 +2403,6 @@ export function isModuleReference(node: Node): node is ModuleReference {
|
||||
|
||||
// JSX
|
||||
|
||||
/** @internal */
|
||||
export function isJsxTagNameExpression(node: Node): node is JsxTagNameExpression {
|
||||
const kind = node.kind;
|
||||
return kind === SyntaxKind.ThisKeyword
|
||||
@ -2426,7 +2410,6 @@ export function isJsxTagNameExpression(node: Node): node is JsxTagNameExpression
|
||||
|| kind === SyntaxKind.PropertyAccessExpression;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isJsxChild(node: Node): node is JsxChild {
|
||||
const kind = node.kind;
|
||||
return kind === SyntaxKind.JsxElement
|
||||
@ -2436,14 +2419,12 @@ export function isJsxChild(node: Node): node is JsxChild {
|
||||
|| kind === SyntaxKind.JsxFragment;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isJsxAttributeLike(node: Node): node is JsxAttributeLike {
|
||||
const kind = node.kind;
|
||||
return kind === SyntaxKind.JsxAttribute
|
||||
|| kind === SyntaxKind.JsxSpreadAttribute;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function isStringLiteralOrJsxExpression(node: Node): node is StringLiteral | JsxExpression {
|
||||
const kind = node.kind;
|
||||
return kind === SyntaxKind.StringLiteral
|
||||
|
||||
@ -8640,13 +8640,30 @@ declare namespace ts {
|
||||
*/
|
||||
function isTypeNode(node: Node): node is TypeNode;
|
||||
function isFunctionOrConstructorTypeNode(node: Node): node is FunctionTypeNode | ConstructorTypeNode;
|
||||
function isArrayBindingElement(node: Node): node is ArrayBindingElement;
|
||||
function isPropertyAccessOrQualifiedName(node: Node): node is PropertyAccessExpression | QualifiedName;
|
||||
function isCallLikeExpression(node: Node): node is CallLikeExpression;
|
||||
function isCallOrNewExpression(node: Node): node is CallExpression | NewExpression;
|
||||
function isTemplateLiteral(node: Node): node is TemplateLiteral;
|
||||
function isLeftHandSideExpression(node: Node): node is LeftHandSideExpression;
|
||||
function isLiteralTypeLiteral(node: Node): node is NullLiteral | BooleanLiteral | LiteralExpression | PrefixUnaryExpression;
|
||||
/**
|
||||
* Determines whether a node is an expression based only on its kind.
|
||||
*/
|
||||
function isExpression(node: Node): node is Expression;
|
||||
function isAssertionExpression(node: Node): node is AssertionExpression;
|
||||
function isIterationStatement(node: Node, lookInLabeledStatements: false): node is IterationStatement;
|
||||
function isIterationStatement(node: Node, lookInLabeledStatements: boolean): node is IterationStatement | LabeledStatement;
|
||||
function isConciseBody(node: Node): node is ConciseBody;
|
||||
function isForInitializer(node: Node): node is ForInitializer;
|
||||
function isModuleBody(node: Node): node is ModuleBody;
|
||||
function isNamedImportBindings(node: Node): node is NamedImportBindings;
|
||||
function isStatement(node: Node): node is Statement;
|
||||
function isModuleReference(node: Node): node is ModuleReference;
|
||||
function isJsxTagNameExpression(node: Node): node is JsxTagNameExpression;
|
||||
function isJsxChild(node: Node): node is JsxChild;
|
||||
function isJsxAttributeLike(node: Node): node is JsxAttributeLike;
|
||||
function isStringLiteralOrJsxExpression(node: Node): node is StringLiteral | JsxExpression;
|
||||
function isJsxOpeningLikeElement(node: Node): node is JsxOpeningLikeElement;
|
||||
function isCaseOrDefaultClause(node: Node): node is CaseOrDefaultClause;
|
||||
/** True if node is of a kind that may contain comment text. */
|
||||
@ -8765,8 +8782,15 @@ declare namespace ts {
|
||||
function isPlusToken(node: Node): node is PlusToken;
|
||||
function isMinusToken(node: Node): node is MinusToken;
|
||||
function isAsteriskToken(node: Node): node is AsteriskToken;
|
||||
function isExclamationToken(node: Node): node is ExclamationToken;
|
||||
function isQuestionToken(node: Node): node is QuestionToken;
|
||||
function isColonToken(node: Node): node is ColonToken;
|
||||
function isQuestionDotToken(node: Node): node is QuestionDotToken;
|
||||
function isEqualsGreaterThanToken(node: Node): node is EqualsGreaterThanToken;
|
||||
function isIdentifier(node: Node): node is Identifier;
|
||||
function isPrivateIdentifier(node: Node): node is PrivateIdentifier;
|
||||
function isAssertsKeyword(node: Node): node is AssertsKeyword;
|
||||
function isAwaitKeyword(node: Node): node is AwaitKeyword;
|
||||
function isQualifiedName(node: Node): node is QualifiedName;
|
||||
function isComputedPropertyName(node: Node): node is ComputedPropertyName;
|
||||
function isTypeParameterDeclaration(node: Node): node is TypeParameterDeclaration;
|
||||
@ -8957,6 +8981,12 @@ declare namespace ts {
|
||||
function isJSDocImplementsTag(node: Node): node is JSDocImplementsTag;
|
||||
function isJSDocSatisfiesTag(node: Node): node is JSDocSatisfiesTag;
|
||||
function isJSDocThrowsTag(node: Node): node is JSDocThrowsTag;
|
||||
function isQuestionOrExclamationToken(node: Node): node is QuestionToken | ExclamationToken;
|
||||
function isIdentifierOrThisTypeNode(node: Node): node is Identifier | ThisTypeNode;
|
||||
function isReadonlyKeywordOrPlusOrMinusToken(node: Node): node is ReadonlyKeyword | PlusToken | MinusToken;
|
||||
function isQuestionOrPlusOrMinusToken(node: Node): node is QuestionToken | PlusToken | MinusToken;
|
||||
function isModuleName(node: Node): node is ModuleName;
|
||||
function isBinaryOperatorToken(node: Node): node is BinaryOperatorToken;
|
||||
function setTextRange<T extends TextRange>(range: T, location: TextRange | undefined): T;
|
||||
function canHaveModifiers(node: Node): node is HasModifiers;
|
||||
function canHaveDecorators(node: Node): node is HasDecorators;
|
||||
|
||||
30
tests/baselines/reference/api/typescript.d.ts
vendored
30
tests/baselines/reference/api/typescript.d.ts
vendored
@ -4661,13 +4661,30 @@ declare namespace ts {
|
||||
*/
|
||||
function isTypeNode(node: Node): node is TypeNode;
|
||||
function isFunctionOrConstructorTypeNode(node: Node): node is FunctionTypeNode | ConstructorTypeNode;
|
||||
function isArrayBindingElement(node: Node): node is ArrayBindingElement;
|
||||
function isPropertyAccessOrQualifiedName(node: Node): node is PropertyAccessExpression | QualifiedName;
|
||||
function isCallLikeExpression(node: Node): node is CallLikeExpression;
|
||||
function isCallOrNewExpression(node: Node): node is CallExpression | NewExpression;
|
||||
function isTemplateLiteral(node: Node): node is TemplateLiteral;
|
||||
function isLeftHandSideExpression(node: Node): node is LeftHandSideExpression;
|
||||
function isLiteralTypeLiteral(node: Node): node is NullLiteral | BooleanLiteral | LiteralExpression | PrefixUnaryExpression;
|
||||
/**
|
||||
* Determines whether a node is an expression based only on its kind.
|
||||
*/
|
||||
function isExpression(node: Node): node is Expression;
|
||||
function isAssertionExpression(node: Node): node is AssertionExpression;
|
||||
function isIterationStatement(node: Node, lookInLabeledStatements: false): node is IterationStatement;
|
||||
function isIterationStatement(node: Node, lookInLabeledStatements: boolean): node is IterationStatement | LabeledStatement;
|
||||
function isConciseBody(node: Node): node is ConciseBody;
|
||||
function isForInitializer(node: Node): node is ForInitializer;
|
||||
function isModuleBody(node: Node): node is ModuleBody;
|
||||
function isNamedImportBindings(node: Node): node is NamedImportBindings;
|
||||
function isStatement(node: Node): node is Statement;
|
||||
function isModuleReference(node: Node): node is ModuleReference;
|
||||
function isJsxTagNameExpression(node: Node): node is JsxTagNameExpression;
|
||||
function isJsxChild(node: Node): node is JsxChild;
|
||||
function isJsxAttributeLike(node: Node): node is JsxAttributeLike;
|
||||
function isStringLiteralOrJsxExpression(node: Node): node is StringLiteral | JsxExpression;
|
||||
function isJsxOpeningLikeElement(node: Node): node is JsxOpeningLikeElement;
|
||||
function isCaseOrDefaultClause(node: Node): node is CaseOrDefaultClause;
|
||||
/** True if node is of a kind that may contain comment text. */
|
||||
@ -4786,8 +4803,15 @@ declare namespace ts {
|
||||
function isPlusToken(node: Node): node is PlusToken;
|
||||
function isMinusToken(node: Node): node is MinusToken;
|
||||
function isAsteriskToken(node: Node): node is AsteriskToken;
|
||||
function isExclamationToken(node: Node): node is ExclamationToken;
|
||||
function isQuestionToken(node: Node): node is QuestionToken;
|
||||
function isColonToken(node: Node): node is ColonToken;
|
||||
function isQuestionDotToken(node: Node): node is QuestionDotToken;
|
||||
function isEqualsGreaterThanToken(node: Node): node is EqualsGreaterThanToken;
|
||||
function isIdentifier(node: Node): node is Identifier;
|
||||
function isPrivateIdentifier(node: Node): node is PrivateIdentifier;
|
||||
function isAssertsKeyword(node: Node): node is AssertsKeyword;
|
||||
function isAwaitKeyword(node: Node): node is AwaitKeyword;
|
||||
function isQualifiedName(node: Node): node is QualifiedName;
|
||||
function isComputedPropertyName(node: Node): node is ComputedPropertyName;
|
||||
function isTypeParameterDeclaration(node: Node): node is TypeParameterDeclaration;
|
||||
@ -4978,6 +5002,12 @@ declare namespace ts {
|
||||
function isJSDocImplementsTag(node: Node): node is JSDocImplementsTag;
|
||||
function isJSDocSatisfiesTag(node: Node): node is JSDocSatisfiesTag;
|
||||
function isJSDocThrowsTag(node: Node): node is JSDocThrowsTag;
|
||||
function isQuestionOrExclamationToken(node: Node): node is QuestionToken | ExclamationToken;
|
||||
function isIdentifierOrThisTypeNode(node: Node): node is Identifier | ThisTypeNode;
|
||||
function isReadonlyKeywordOrPlusOrMinusToken(node: Node): node is ReadonlyKeyword | PlusToken | MinusToken;
|
||||
function isQuestionOrPlusOrMinusToken(node: Node): node is QuestionToken | PlusToken | MinusToken;
|
||||
function isModuleName(node: Node): node is ModuleName;
|
||||
function isBinaryOperatorToken(node: Node): node is BinaryOperatorToken;
|
||||
function setTextRange<T extends TextRange>(range: T, location: TextRange | undefined): T;
|
||||
function canHaveModifiers(node: Node): node is HasModifiers;
|
||||
function canHaveDecorators(node: Node): node is HasDecorators;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user