JSDocTypeTag.typeExpression is not optional (#30452)
This commit is contained in:
parent
9efea31649
commit
5bc8a8dddf
|
@ -18613,7 +18613,7 @@ namespace ts {
|
|||
case SyntaxKind.ParenthesizedExpression: {
|
||||
// Like in `checkParenthesizedExpression`, an `/** @type {xyz} */` comment before a parenthesized expression acts as a type cast.
|
||||
const tag = isInJSFile(parent) ? getJSDocTypeTag(parent) : undefined;
|
||||
return tag ? getTypeFromTypeNode(tag.typeExpression!.type) : getContextualType(<ParenthesizedExpression>parent, contextFlags);
|
||||
return tag ? getTypeFromTypeNode(tag.typeExpression.type) : getContextualType(<ParenthesizedExpression>parent, contextFlags);
|
||||
}
|
||||
case SyntaxKind.JsxExpression:
|
||||
return getContextualTypeForJsxExpression(<JsxExpression>parent);
|
||||
|
@ -24231,7 +24231,7 @@ namespace ts {
|
|||
function checkParenthesizedExpression(node: ParenthesizedExpression, checkMode?: CheckMode): Type {
|
||||
const tag = isInJSFile(node) ? getJSDocTypeTag(node) : undefined;
|
||||
if (tag) {
|
||||
return checkAssertionWorker(tag, tag.typeExpression!.type, node.expression, checkMode);
|
||||
return checkAssertionWorker(tag, tag.typeExpression.type, node.expression, checkMode);
|
||||
}
|
||||
return checkExpression(node.expression, checkMode);
|
||||
}
|
||||
|
|
|
@ -2189,7 +2189,7 @@ namespace ts {
|
|||
}
|
||||
|
||||
/* @internal */
|
||||
export function createJSDocTypeTag(typeExpression?: JSDocTypeExpression, comment?: string): JSDocTypeTag {
|
||||
export function createJSDocTypeTag(typeExpression: JSDocTypeExpression, comment?: string): JSDocTypeTag {
|
||||
const tag = createJSDocTag<JSDocTypeTag>(SyntaxKind.JSDocTypeTag, "type");
|
||||
tag.typeExpression = typeExpression;
|
||||
tag.comment = comment;
|
||||
|
|
|
@ -6855,7 +6855,7 @@ namespace ts {
|
|||
}
|
||||
|
||||
function parseReturnTag(start: number, tagName: Identifier): JSDocReturnTag {
|
||||
if (forEach(tags, t => t.kind === SyntaxKind.JSDocReturnTag)) {
|
||||
if (some(tags, isJSDocReturnTag)) {
|
||||
parseErrorAt(tagName.pos, scanner.getTokenPos(), Diagnostics._0_tag_already_specified, tagName.escapedText);
|
||||
}
|
||||
|
||||
|
@ -6866,7 +6866,7 @@ namespace ts {
|
|||
}
|
||||
|
||||
function parseTypeTag(start: number, tagName: Identifier): JSDocTypeTag {
|
||||
if (forEach(tags, t => t.kind === SyntaxKind.JSDocTypeTag)) {
|
||||
if (some(tags, isJSDocTypeTag)) {
|
||||
parseErrorAt(tagName.pos, scanner.getTokenPos(), Diagnostics._0_tag_already_specified, tagName.escapedText);
|
||||
}
|
||||
|
||||
|
|
|
@ -2482,7 +2482,7 @@ namespace ts {
|
|||
|
||||
export interface JSDocTypeTag extends JSDocTag {
|
||||
kind: SyntaxKind.JSDocTypeTag;
|
||||
typeExpression?: JSDocTypeExpression;
|
||||
typeExpression: JSDocTypeExpression;
|
||||
}
|
||||
|
||||
export interface JSDocTypedefTag extends JSDocTag, NamedDeclaration {
|
||||
|
|
|
@ -134,7 +134,7 @@ namespace ts.JsDoc {
|
|||
case SyntaxKind.JSDocTemplateTag:
|
||||
return withList((tag as JSDocTemplateTag).typeParameters);
|
||||
case SyntaxKind.JSDocTypeTag:
|
||||
return withNode((tag as JSDocTypeTag).typeExpression!);
|
||||
return withNode((tag as JSDocTypeTag).typeExpression);
|
||||
case SyntaxKind.JSDocTypedefTag:
|
||||
case SyntaxKind.JSDocCallbackTag:
|
||||
case SyntaxKind.JSDocPropertyTag:
|
||||
|
|
|
@ -1603,7 +1603,7 @@ declare namespace ts {
|
|||
}
|
||||
interface JSDocTypeTag extends JSDocTag {
|
||||
kind: SyntaxKind.JSDocTypeTag;
|
||||
typeExpression?: JSDocTypeExpression;
|
||||
typeExpression: JSDocTypeExpression;
|
||||
}
|
||||
interface JSDocTypedefTag extends JSDocTag, NamedDeclaration {
|
||||
parent: JSDoc;
|
||||
|
|
|
@ -1603,7 +1603,7 @@ declare namespace ts {
|
|||
}
|
||||
interface JSDocTypeTag extends JSDocTag {
|
||||
kind: SyntaxKind.JSDocTypeTag;
|
||||
typeExpression?: JSDocTypeExpression;
|
||||
typeExpression: JSDocTypeExpression;
|
||||
}
|
||||
interface JSDocTypedefTag extends JSDocTag, NamedDeclaration {
|
||||
parent: JSDoc;
|
||||
|
|
Loading…
Reference in a new issue