Skip to content

Commit 7d5985f

Browse files
[dev-2.0] Fix optional and rest parameters in TypeScript class method declarations.
1 parent 2606c21 commit 7d5985f

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

package.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,14 @@
6868
"license": "LGPL-2.1",
6969
"browser": "./lib/p5.min.js",
7070
"exports": {
71-
".": "./dist/app.js",
72-
"./core": "./dist/core/main.js",
71+
".": {
72+
"types": "./types/p5.d.ts",
73+
"default": "./dist/app.js"
74+
},
75+
"./core": {
76+
"types": "./types/core/main.d.ts",
77+
"default": "./dist/core/main.js"
78+
},
7379
"./shape": "./dist/shape/index.js",
7480
"./accessibility": "./dist/accessibility/index.js",
7581
"./friendlyErrors": "./dist/core/friendlyErrors/index.js",

utils/helper.mjs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,8 @@ function generateDeclarationFile(items, organizedData) {
286286
params: (entry.params || []).map(param => ({
287287
name: param.name,
288288
type: generateTypeFromTag(param),
289-
optional: param.type?.type === 'OptionalType'
289+
optional: param.type?.type === 'OptionalType',
290+
rest: param.type?.type === 'RestType'
290291
})),
291292
module,
292293
submodule,
@@ -307,7 +308,8 @@ function generateDeclarationFile(items, organizedData) {
307308
params: (entry.params || []).map(param => ({
308309
name: param.name,
309310
type: generateTypeFromTag(param),
310-
optional: param.type?.type === 'OptionalType'
311+
optional: param.type?.type === 'OptionalType',
312+
rest: param.type?.type === 'RestType'
311313
})),
312314
returnType: entry.returns?.[0] ? generateTypeFromTag(entry.returns[0]) : 'void',
313315
module,
@@ -423,7 +425,7 @@ export function generateTypeFromTag(param) {
423425

424426
let type = param.type;
425427
let prefix = '';
426-
const isOptional = param.type?.type === 'OptionalType';
428+
const isOptional = param.optional || param.type?.type === 'OptionalType';
427429
if (typeof type === 'string') {
428430
type = normalizeTypeName(type);
429431
} else if (param.type?.type) {
@@ -432,7 +434,7 @@ export function generateTypeFromTag(param) {
432434
type = 'any';
433435
}
434436

435-
if (param.type?.type === 'RestType') {
437+
if (param.rest || param.type?.type === 'RestType') {
436438
prefix = '...';
437439
}
438440

0 commit comments

Comments
 (0)