Skip to content

Commit 61358c5

Browse files
committed
Add examples
1 parent 3316b43 commit 61358c5

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

src/rules/no-undocumented-throws.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,11 @@ module.exports = createRule({
228228

229229
if (!calleeDeclaration) return;
230230

231+
/** @type {import('typescript').JSDocThrowsTag[]} */
232+
const comments = [];
233+
comments.push(...getJSDocThrowsTags(calleeDeclaration));
234+
throwsComments.set(getNodeID(callerDeclaration), comments);
235+
231236
const calleeThrowsTypes = getJSDocThrowsTagTypes(checker, calleeDeclaration);
232237
if (!calleeThrowsTypes.length) return;
233238

@@ -735,19 +740,34 @@ module.exports = createRule({
735740
*/
736741
/**
737742
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of MDN}
743+
* @example
744+
* ```
745+
* for (const item of iterable) { ... }
746+
* // ^ this
747+
* ```
738748
*/
739749
'ForOfStatement'(node) {
740750
visitIterableNode(node.right);
741751
},
742752
/**
743753
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax MDN}
754+
* @example
755+
* ```
756+
* [...iterable]
757+
* // ^ this
758+
* ```
744759
*/
745760
'SpreadElement'(node) {
746761
visitIterableNode(node.argument);
747762
},
748763
/**
749764
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from MDN}
750765
* @param {import('@typescript-eslint/utils').TSESTree.CallExpression} node
766+
* @example
767+
* ```
768+
* Array.from(iterable)
769+
* // ^ this
770+
* ```
751771
*/
752772
'CallExpression:has(> MemberExpression[object.name="Array"][property.name="from"])'(node) {
753773
if (node.arguments.length < 1) return;
@@ -759,6 +779,11 @@ module.exports = createRule({
759779
/**
760780
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fromAsync MDN}
761781
* @param {import('@typescript-eslint/utils').TSESTree.CallExpression} node
782+
* @example
783+
* ```
784+
* await Array.fromAsync(iterable)
785+
* // ^ this
786+
* ```
762787
*/
763788
'CallExpression:has(> MemberExpression[object.name="Array"][property.name="fromAsync"])'(node) {
764789
if (node.arguments.length < 1) return;
@@ -770,6 +795,18 @@ module.exports = createRule({
770795
/**
771796
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/yield* MDN}
772797
* @param {import('@typescript-eslint/utils').TSESTree.YieldExpression} node
798+
* @example
799+
* ```
800+
* function* gen() {
801+
* yield* iterable;
802+
* // ^ this
803+
* }
804+
* // or
805+
* async function* asyncGen() {
806+
* yield* iterable;
807+
* // ^ this
808+
* }
809+
* ```
773810
*/
774811
'YieldExpression[delegate=true]'(node) {
775812
if (!node.argument) return;
@@ -779,6 +816,11 @@ module.exports = createRule({
779816
/**
780817
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator/next MDN}
781818
* @param {import('@typescript-eslint/utils').TSESTree.CallExpression} node
819+
* @example
820+
* ```
821+
* iterable.next();
822+
* // ^ this
823+
* ```
782824
*/
783825
'CallExpression[callee.property.name="next"]'(node) {
784826
if (node.callee.type !== AST_NODE_TYPES.MemberExpression) return;

0 commit comments

Comments
 (0)