tests/cases/conformance/jsdoc/mod1.js(3,23): error TS2300: Duplicate identifier 'Foo'. tests/cases/conformance/jsdoc/mod1.js(4,7): error TS2300: Duplicate identifier 'Foo'. tests/cases/conformance/jsdoc/mod1.js(9,23): error TS2300: Duplicate identifier 'Baz'. tests/cases/conformance/jsdoc/mod1.js(11,5): error TS2300: Duplicate identifier 'Baz'. ==== tests/cases/conformance/jsdoc/use.js (0 errors) ==== var mod = require('./mod1.js'); /** @type {import("./mod1.js").Baz} */ var b; /** @type {mod.Baz} */ var bb; var bbb = new mod.Baz(); ==== tests/cases/conformance/jsdoc/mod1.js (4 errors) ==== // error /** @typedef {number} Foo */ ~~~ !!! error TS2300: Duplicate identifier 'Foo'. class Foo { } // should error ~~~ !!! error TS2300: Duplicate identifier 'Foo'. /** @typedef {number} Bar */ exports.Bar = class { } /** @typedef {number} Baz */ ~~~ !!! error TS2300: Duplicate identifier 'Baz'. !!! related TS6203 /.src/tests/cases/conformance/jsdoc/mod1.js:11:5: 'Baz' was also declared here. module.exports = { Baz: class { } ~~~ !!! error TS2300: Duplicate identifier 'Baz'. !!! related TS6203 /.src/tests/cases/conformance/jsdoc/mod1.js:9:23: 'Baz' was also declared here. } // ok /** @typedef {number} Qux */ var Qux = 2; /** @typedef {number} Quid */ exports.Quid = 2; /** @typedef {number} Quack */ module.exports = { Quack: 2 }