diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 0a39022e276fd..c090dc1c84854 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -36107,16 +36107,19 @@ namespace ts { function isTypeDeclarationName(name: Node): boolean { return name.kind === SyntaxKind.Identifier && isTypeDeclaration(name.parent) && - name.parent.name === name; + getNameOfDeclaration(name.parent) === name; } - function isTypeDeclaration(node: Node): node is TypeParameterDeclaration | ClassDeclaration | InterfaceDeclaration | TypeAliasDeclaration | EnumDeclaration | ImportClause | ImportSpecifier | ExportSpecifier { + function isTypeDeclaration(node: Node): node is TypeParameterDeclaration | ClassDeclaration | InterfaceDeclaration | TypeAliasDeclaration | JSDocTypedefTag | JSDocCallbackTag | JSDocEnumTag | EnumDeclaration | ImportClause | ImportSpecifier | ExportSpecifier { switch (node.kind) { case SyntaxKind.TypeParameter: case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.TypeAliasDeclaration: case SyntaxKind.EnumDeclaration: + case SyntaxKind.JSDocTypedefTag: + case SyntaxKind.JSDocCallbackTag: + case SyntaxKind.JSDocEnumTag: return true; case SyntaxKind.ImportClause: return (node as ImportClause).isTypeOnly; diff --git a/tests/cases/fourslash/jsdocDeprecated_suggestion5.ts b/tests/cases/fourslash/jsdocDeprecated_suggestion5.ts new file mode 100644 index 0000000000000..9693d291f1eb4 --- /dev/null +++ b/tests/cases/fourslash/jsdocDeprecated_suggestion5.ts @@ -0,0 +1,23 @@ +/// + +// @checkJs: true +// @allowJs: true +// @Filename: jsdocDeprecated_suggestion5.js +//// /** @typedef {{ email: string, nickName?: string }} U2 */ +//// /** @type {U2} */ +//// const u2 = { email: "" } + +//// /** +//// * @callback K +//// * @param {any} ctx +//// * @return {void} +//// */ +//// /** @type {K} */ +//// const cc = _k => {} + +//// /** @enum {number} */ +//// const DOOM = { e: 1, m: 1 } +//// /** @type {DOOM} */ +//// const kneeDeep = DOOM.e + +verify.getSuggestionDiagnostics([])