api-extractor-model-me
Version:
A helper library for loading and saving the .api.json files created by API Extractor
78 lines • 2.24 kB
TypeScript
import * as tsdoc from '@microsoft/tsdoc';
import { Excerpt } from '../mixins/Excerpt';
import { ApiTypeParameterListMixin } from '../mixins/ApiTypeParameterListMixin';
/**
* Constructor options for {@link TypeParameter}.
* @public
*/
export interface ITypeParameterOptions {
name: string;
constraintExcerpt: Excerpt;
defaultTypeExcerpt: Excerpt;
parent: ApiTypeParameterListMixin;
}
/**
* Represents a named type parameter for a generic declaration.
*
* @remarks
*
* `TypeParameter` represents a TypeScript declaration such as `T` in this example:
*
* ```ts
* interface IIdentifier {
* getCode(): string;
* }
*
* class BarCode implements IIdentifier {
* private _value: number;
* public getCode(): string { return this._value.toString(); }
* }
*
* class Book<TIdentifier extends IIdentifier = BarCode> {
* public identifier: TIdentifier;
* }
* ```
*
* `TypeParameter` objects belong to the {@link (ApiTypeParameterListMixin:interface).typeParameters} collection.
*
* @public
*/
export declare class TypeParameter {
/**
* An {@link Excerpt} that describes the base constraint of the type parameter.
*
* @remarks
* In the example below, the `constraintExcerpt` would correspond to the `IIdentifier` subexpression:
*
* ```ts
* class Book<TIdentifier extends IIdentifier = BarCode> {
* public identifier: TIdentifier;
* }
* ```
*/
readonly constraintExcerpt: Excerpt;
/**
* An {@link Excerpt} that describes the default type of the type parameter.
*
* @remarks
* In the example below, the `defaultTypeExcerpt` would correspond to the `BarCode` subexpression:
*
* ```ts
* class Book<TIdentifier extends IIdentifier = BarCode> {
* public identifier: TIdentifier;
* }
* ```
*/
readonly defaultTypeExcerpt: Excerpt;
/**
* The parameter name.
*/
name: string;
private _parent;
constructor(options: ITypeParameterOptions);
/**
* Returns the `@typeParam` documentation for this parameter, if present.
*/
get tsdocTypeParamBlock(): tsdoc.DocParamBlock | undefined;
}
//# sourceMappingURL=TypeParameter.d.ts.map