in tsdoc/src/nodes/DocLinkTag.ts [62:128]
public constructor(parameters: IDocLinkTagParameters | IDocLinkTagParsedParameters) {
super(parameters);
if (this.tagNameWithUpperCase !== '@LINK') {
throw new Error('DocLinkTag requires the tag name to be "{@link}"');
}
this._codeDestination = parameters.codeDestination;
if (DocNode.isParsedParameters(parameters)) {
if (parameters.codeDestination !== undefined && parameters.urlDestinationExcerpt !== undefined) {
throw new Error('Either the codeDestination or the urlDestination may be specified, but not both');
}
if (parameters.urlDestinationExcerpt) {
this._urlDestinationExcerpt = new DocExcerpt({
configuration: this.configuration,
excerptKind: ExcerptKind.LinkTag_UrlDestination,
content: parameters.urlDestinationExcerpt
});
}
if (parameters.spacingAfterDestinationExcerpt) {
this._spacingAfterDestinationExcerpt = new DocExcerpt({
configuration: this.configuration,
excerptKind: ExcerptKind.Spacing,
content: parameters.spacingAfterDestinationExcerpt
});
}
if (parameters.pipeExcerpt) {
this._pipeExcerpt = new DocExcerpt({
configuration: this.configuration,
excerptKind: ExcerptKind.LinkTag_Pipe,
content: parameters.pipeExcerpt
});
}
if (parameters.spacingAfterPipeExcerpt) {
this._spacingAfterPipeExcerpt = new DocExcerpt({
configuration: this.configuration,
excerptKind: ExcerptKind.Spacing,
content: parameters.spacingAfterPipeExcerpt
});
}
if (parameters.linkTextExcerpt) {
this._linkTextExcerpt = new DocExcerpt({
configuration: this.configuration,
excerptKind: ExcerptKind.LinkTag_LinkText,
content: parameters.linkTextExcerpt
});
}
if (parameters.spacingAfterLinkTextExcerpt) {
this._spacingAfterLinkTextExcerpt = new DocExcerpt({
configuration: this.configuration,
excerptKind: ExcerptKind.Spacing,
content: parameters.spacingAfterLinkTextExcerpt
});
}
} else {
if (parameters.codeDestination !== undefined && parameters.urlDestination !== undefined) {
throw new Error('Either the codeDestination or the urlDestination may be specified, but not both');
}
this._urlDestination = parameters.urlDestination;
this._linkText = parameters.linkText;
}
}