Skip to content

Commit f938fdc

Browse files
committed
fix(no-undefined-types): consider module scope variables as defined; fixes #1581
1 parent 0c4e5b6 commit f938fdc

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

docs/rules/no-undefined-types.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,5 +1097,23 @@ class Storage {
10971097
/** @type {globalThis.localStorage} */
10981098
#storage
10991099
}
1100+
1101+
/**
1102+
* La liste des sévérités.
1103+
*
1104+
* @type {Object<string, number>}
1105+
*/
1106+
const Severities = {
1107+
FATAL: 1,
1108+
ERROR: 2,
1109+
WARN: 3,
1110+
INFO: 4,
1111+
};
1112+
1113+
/**
1114+
* @typedef {Severities[keyof Severities]} Severity Le type des sévérités.
1115+
*/
1116+
1117+
export default Severities;
11001118
````
11011119

src/rules/noUndefinedTypes.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,10 @@ export default iterateJsdoc(({
342342
break;
343343
}
344344

345-
return [];
345+
// Module scope names are also defined
346+
return [
347+
name,
348+
];
346349
}
347350

348351
return [

test/rules/assertions/noUndefinedTypes.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1870,5 +1870,26 @@ export default /** @type {import('../index.js').TestCases} */ ({
18701870
},
18711871
},
18721872
},
1873+
{
1874+
code: `
1875+
/**
1876+
* La liste des sévérités.
1877+
*
1878+
* @type {Object<string, number>}
1879+
*/
1880+
const Severities = {
1881+
FATAL: 1,
1882+
ERROR: 2,
1883+
WARN: 3,
1884+
INFO: 4,
1885+
};
1886+
1887+
/**
1888+
* @typedef {Severities[keyof Severities]} Severity Le type des sévérités.
1889+
*/
1890+
1891+
export default Severities;
1892+
`,
1893+
},
18731894
],
18741895
});

0 commit comments

Comments
 (0)