sveld 0.27.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -0
- package/lib/ComponentParser.d.ts +1 -1
- package/lib/index.js +76 -76
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -119,6 +119,7 @@ export default class Button extends SvelteComponentTyped<
|
|
|
119
119
|
- [API Reference](#api-reference)
|
|
120
120
|
- [@type](#type)
|
|
121
121
|
- [@typedef](#typedef)
|
|
122
|
+
- [@callback](#callback)
|
|
122
123
|
- [@slot](#slot)
|
|
123
124
|
- [Svelte 5 Snippet Compatibility](#svelte-5-snippet-compatibility)
|
|
124
125
|
- [@event](#event)
|
|
@@ -484,6 +485,69 @@ export type ComponentProps = {
|
|
|
484
485
|
|
|
485
486
|
> **Note:** The inline syntax `@typedef {{ name: string }} User` continues to work for backwards compatibility.
|
|
486
487
|
|
|
488
|
+
### `@callback`
|
|
489
|
+
|
|
490
|
+
The `@callback` tag defines a function type using `@param` and `@returns` tags, following the [TypeScript JSDoc `@callback` specification](https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html#callback). Like `@typedef`, callbacks are exported from the generated TypeScript definition file.
|
|
491
|
+
|
|
492
|
+
This is useful for typing callback props without using inline function type syntax.
|
|
493
|
+
|
|
494
|
+
Signature:
|
|
495
|
+
|
|
496
|
+
```js
|
|
497
|
+
/**
|
|
498
|
+
* Optional description
|
|
499
|
+
* @callback CallbackName
|
|
500
|
+
* @param {Type} paramName - Parameter description
|
|
501
|
+
* @returns {ReturnType}
|
|
502
|
+
*/
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
Example:
|
|
506
|
+
|
|
507
|
+
```js
|
|
508
|
+
/**
|
|
509
|
+
* Callback fired when the value changes
|
|
510
|
+
* @callback OnChange
|
|
511
|
+
* @param {string} value - The new value
|
|
512
|
+
* @param {number} index - The index of the changed item
|
|
513
|
+
* @returns {void}
|
|
514
|
+
*/
|
|
515
|
+
|
|
516
|
+
/** @type {OnChange} */
|
|
517
|
+
export let onChange = (value, index) => {};
|
|
518
|
+
```
|
|
519
|
+
|
|
520
|
+
Output:
|
|
521
|
+
|
|
522
|
+
```ts
|
|
523
|
+
/**
|
|
524
|
+
* Callback fired when the value changes
|
|
525
|
+
*/
|
|
526
|
+
export type OnChange = (value: string, index: number) => void;
|
|
527
|
+
|
|
528
|
+
export type ComponentProps = {
|
|
529
|
+
/**
|
|
530
|
+
* Callback fired when the value changes
|
|
531
|
+
*/
|
|
532
|
+
onChange?: OnChange;
|
|
533
|
+
};
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
Callbacks can be combined with `@typedef` in the same comment block:
|
|
537
|
+
|
|
538
|
+
```js
|
|
539
|
+
/**
|
|
540
|
+
* @typedef {"asc" | "desc"} SortDirection
|
|
541
|
+
* @callback SortFn
|
|
542
|
+
* @param {any} a
|
|
543
|
+
* @param {any} b
|
|
544
|
+
* @param {SortDirection} direction
|
|
545
|
+
* @returns {number}
|
|
546
|
+
*/
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
When `@returns` is omitted, the return type defaults to `void`. When no `@param` tags are present, the callback is typed as a no-argument function.
|
|
550
|
+
|
|
487
551
|
### `@slot`
|
|
488
552
|
|
|
489
553
|
Use the `@slot` tag for typing component slots. Note that `@slot` is a non-standard JSDoc tag.
|
package/lib/ComponentParser.d.ts
CHANGED
|
@@ -601,7 +601,7 @@ export default class ComponentParser {
|
|
|
601
601
|
* Parses custom types, events, slots, and other JSDoc annotations from component comments.
|
|
602
602
|
*
|
|
603
603
|
* Scans the entire source for JSDoc comment blocks and extracts structured information
|
|
604
|
-
* about events, typedefs, slots, extends, restProps, and generics. Handles complex
|
|
604
|
+
* about events, typedefs, callbacks, slots, extends, restProps, and generics. Handles complex
|
|
605
605
|
* description extraction logic that supports both inline descriptions and preceding
|
|
606
606
|
* line descriptions.
|
|
607
607
|
*
|