Make it a parse error for an @type jsdoc tag to not include a type (#18664)

* Make it a parse error for an `@type` jsdoc tag to not include a type

* Rename parameter
This commit is contained in:
Andy
2017-09-22 10:45:43 -07:00
committed by GitHub
parent 72c8b804da
commit 2399bac377
2 changed files with 12 additions and 9 deletions
+7 -3
View File
@@ -6135,10 +6135,14 @@ namespace ts {
}
// Parses out a JSDoc type expression.
export function parseJSDocTypeExpression(): JSDocTypeExpression {
export function parseJSDocTypeExpression(): JSDocTypeExpression;
export function parseJSDocTypeExpression(requireBraces: true): JSDocTypeExpression | undefined;
export function parseJSDocTypeExpression(requireBraces?: boolean): JSDocTypeExpression | undefined {
const result = <JSDocTypeExpression>createNode(SyntaxKind.JSDocTypeExpression, scanner.getTokenPos());
parseExpected(SyntaxKind.OpenBraceToken);
if (!parseExpected(SyntaxKind.OpenBraceToken) && requireBraces) {
return undefined;
}
result.type = doInsideOfContext(NodeFlags.JSDoc, parseType);
parseExpected(SyntaxKind.CloseBraceToken);
@@ -6595,7 +6599,7 @@ namespace ts {
const result = <JSDocTypeTag>createNode(SyntaxKind.JSDocTypeTag, atToken.pos);
result.atToken = atToken;
result.tagName = tagName;
result.typeExpression = tryParseTypeExpression();
result.typeExpression = parseJSDocTypeExpression(/*mayBail*/ true);
return finishNode(result);
}
+5 -6
View File
@@ -139,6 +139,11 @@ namespace ts {
`/**
* @param
*/`);
parsesIncorrectly("noType",
`/**
* @type
*/`);
});
describe("parsesCorrectly", () => {
@@ -148,12 +153,6 @@ namespace ts {
*/`);
parsesCorrectly("noType",
`/**
* @type
*/`);
parsesCorrectly("noReturnType",
`/**
* @return