1// @noEmit: true 2// @allowJs: true 3// @checkJs: true 4// @Filename: mod1.js 5 6// error 7 8/** @typedef {number} Foo */ 9class Foo { } // should error 10 11/** @typedef {number} Bar */ 12exports.Bar = class { } 13 14/** @typedef {number} Baz */ 15module.exports = { 16 Baz: class { } 17} 18 19// ok 20 21/** @typedef {number} Qux */ 22var Qux = 2; 23 24/** @typedef {number} Quid */ 25exports.Quid = 2; 26 27/** @typedef {number} Quack */ 28module.exports = { 29 Quack: 2 30} 31 32// @Filename: use.js 33 34var mod = require('./mod1.js'); 35/** @type {import("./mod1.js").Baz} */ 36var b; 37/** @type {mod.Baz} */ 38var bb; 39var bbb = new mod.Baz(); 40