Spec-Zone.ru › JSDoc

@interface

Оглавление

  • Синтаксис
  • Обзор
  • Примеры
  • Связанные ссылки

Синтаксис

С помощью словаря тегов JSDoc (включен по умолчанию):

@interface [<name>]

С помощью словаря тегов Closure Compiler:

@interface

Обзор

Тег @interface помечает символ как интерфейс, который могут реализовывать другие символы. Например, ваш код может определять родительский класс, чьи методы и свойства пусты. Вы можете добавить тег @interface к родительскому классу, чтобы указать, что дочерние классы должны реализовать методы и свойства родительского класса.

Добавьте тег @interface к символу верхнего уровня для интерфейса (например, к конструкторской функции). Вам не нужно добавлять тег @interface к каждому члену интерфейса (например, к методам экземпляра интерфейса).

Если вы используете словарь тегов JSDoc (включён по умолчанию), вы также можете определить интерфейс с виртуальными комментариями, а не кодом для интерфейса. Смотрите "Виртуальные комментарии, определяющие интерфейс" для примера.

Примеры

В следующем примере функция Color представляет собой интерфейс, который могут реализовывать другие классы:

Использование тега @interface
/**
 * Interface for classes that represent a color.
 *
 * @interface
 */
function Color() {}

/**
 * Get the color as an array of red, green, and blue values, represented as
 * decimal numbers between 0 and 1.
 *
 * @returns {Array<number>} An array containing the red, green, and blue values,
 * in that order.
 */
Color.prototype.rgb = function() {
    throw new Error('not implemented');
};

Следующий пример использует виртуальные комментарии, а не код, для определения интерфейса %%%CODE_BLOCK_8%%:

Виртуальные комментарии, определяющие интерфейс
/**
 * Interface for classes that represent a color.
 *
 * @interface Color
 */

/**
 * Get the color as an array of red, green, and blue values, represented as
 * decimal numbers between 0 and 1.
 *
 * @function
 * @name Color#rgb
 * @returns {Array<number>} An array containing the red, green, and blue values,
 * in that order.
 */

Связанные ссылки

@implements

© 2011–2017 the contributors to the JSDoc 3 documentation project
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://jsdoc.app/tags-interface.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API