Rush Stack商店博客活动
跳至主要内容

@virtual

标签类型: 修饰符

TSDoc 标准化: 扩展

@virtual 修饰符与 C# 中的 virtual 关键字具有类似的语义。它应该仅应用于类的成员。它指示该成员可以被子类的相应成员覆盖(即重新定义)。@virtual 修饰符不应应用于 abstract 成员,因为 abstract 关键字已经暗示该方法是虚拟的。

@virtual 修饰符将在生成的文档中显示。

API 提取器目前不验证 @virtual 修饰符是否使用正确。(这可能在将来实现。)

注意:与许多其他编程语言不同,TypeScript 支持类静态成员的继承。因此,对于静态成员和实例成员,使用 @virtual@override@sealed 是有效的。

用法示例

/** @public */
export class Control {
/**
* The title of the control
* @virtual
*/
public get title(): string {
return 'Control';
}

/**
* Draws the control on the screen
* @virtual
*/
public render(): void {
. . .
}
}

/** @public */
export class Button extends Control {
/**
* {@inheritDoc Control.title}
* @override
*/
public get title(): string {
return 'Button';
}

/**
* {@inheritDoc Control.render}
* @override
*/
public render(): void {
. . .
}
}

另请参见