본문으로 건너뛰기

@interface

구문

JSDoc 태그 사전(기본적으로 활성화됨)을 사용하여:

@interface [<name>]

Closure Compiler 태그 사전을 사용하여:

@interface

개요

@interface 태그는 다른 심볼이 구현할 수 있는 인터페이스로 심볼을 표시합니다. 예를 들어, 여러분의 코드는 메소드와 속성이 스텁 처리된 부모 클래스를 정의할 수 있습니다. 자식 클래스가 부모 클래스의 메소드와 속성을 구현해야 함을 나타내기 위해 부모 클래스에 @interface 태그를 추가할 수 있습니다.

인터페이스의 최상위 심볼(예: 생성자 함수)에 @interface 태그를 추가하세요. 인터페이스의 각 구성원(예: 인터페이스의 인스턴스 메소드)마다 @interface 태그를 추가할 필요는 없습니다.

기본적으로 활성화된 JSDoc 태그 사전을 사용하는 경우, 인터페이스를 정의하기 위해 코드 대신 가상 주석을 사용할 수도 있습니다. "인터페이스를 정의하는 가상 주석"에서 예제를 확인하세요.

예제

다음 예제에서 Color 함수는 다른 클래스가 구현할 수 있는 인터페이스를 나타냅니다:

@interface 태그 사용

/**
* 색상을 나타내는 클래스의 인터페이스입니다.
*
* @interface
*/
function Color() {}

/**
* 색상을 0과 1 사이의 소수로 표현된 빨강, 초록, 파랑 값의 배열로 가져옵니다.
*
* @returns {Array<number>} 빨강, 초록, 파랑 값이 그 순서대로 포함된 배열입니다.
*/
Color.prototype.rgb = function () {
throw new Error('구현되지 않음')
}

다음 예제는 코드 대신 가상 주석을 사용하여 Color 인터페이스를 정의합니다:

인터페이스를 정의하는 가상 주석

/**
* 색상을 나타내는 클래스의 인터페이스입니다.
*
* @interface Color
*/

/**
* 색상을 0과 1 사이의 소수로 표현된 빨강, 초록, 파랑 값의 배열로 가져옵니다.
*
* @function
* @name Color#rgb
* @returns {Array<number>} 빨강, 초록, 파랑 값이 그 순서대로 포함된 배열입니다.
*/

관련 링크

@implements