• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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