mirror of
https://github.com/discordjs/discord.js.git
synced 2026-06-02 00:50:09 +00:00
* feat(website): links to type parameters, builtin doc links in api.json * feat(website): show default values for params and props in excerpt * fix: link in jsdoc --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
87 lines
2.2 KiB
TypeScript
87 lines
2.2 KiB
TypeScript
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
// See LICENSE in the project root for license information.
|
|
|
|
import type * as tsdoc from '@microsoft/tsdoc';
|
|
import { ApiDocumentedItem } from '../items/ApiDocumentedItem.js';
|
|
import type { ApiParameterListMixin } from '../mixins/ApiParameterListMixin.js';
|
|
import type { Excerpt } from '../mixins/Excerpt.js';
|
|
|
|
/**
|
|
* Constructor options for {@link Parameter}.
|
|
*
|
|
* @public
|
|
*/
|
|
export interface IParameterOptions {
|
|
defaultValue: string | undefined;
|
|
isOptional: boolean;
|
|
isRest: boolean;
|
|
name: string;
|
|
parameterTypeExcerpt: Excerpt;
|
|
parent: ApiParameterListMixin;
|
|
}
|
|
|
|
/**
|
|
* Represents a named parameter for a function-like declaration.
|
|
*
|
|
* @remarks
|
|
*
|
|
* `Parameter` represents a TypeScript declaration such as `x: number` in this example:
|
|
*
|
|
* ```ts
|
|
* export function add(x: number, y: number): number {
|
|
* return x + y;
|
|
* }
|
|
* ```
|
|
*
|
|
* `Parameter` objects belong to the {@link (ApiParameterListMixin:interface).parameters} collection.
|
|
* @public
|
|
*/
|
|
export class Parameter {
|
|
/**
|
|
* An {@link Excerpt} that describes the type of the parameter.
|
|
*/
|
|
public readonly parameterTypeExcerpt: Excerpt;
|
|
|
|
/**
|
|
* The parameter name.
|
|
*/
|
|
public name: string;
|
|
|
|
/**
|
|
* Whether the parameter is optional.
|
|
*/
|
|
public isOptional: boolean;
|
|
|
|
/**
|
|
* Whether the parameter is a rest parameter
|
|
*/
|
|
public isRest: boolean;
|
|
|
|
/**
|
|
* The default value for this parameter if optional
|
|
*/
|
|
public defaultValue: string | undefined;
|
|
|
|
private readonly _parent: ApiParameterListMixin;
|
|
|
|
public constructor(options: IParameterOptions) {
|
|
this.name = options.name;
|
|
this.parameterTypeExcerpt = options.parameterTypeExcerpt;
|
|
this.isOptional = options.isOptional;
|
|
this.isRest = options.isRest;
|
|
this._parent = options.parent;
|
|
this.defaultValue = options.defaultValue;
|
|
}
|
|
|
|
/**
|
|
* Returns the `@param` documentation for this parameter, if present.
|
|
*/
|
|
public get tsdocParamBlock(): tsdoc.DocParamBlock | undefined {
|
|
if (this._parent instanceof ApiDocumentedItem && this._parent.tsdocComment) {
|
|
return this._parent.tsdocComment.params.tryGetBlockByName(this.name);
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
}
|