# check-access
* [Context and settings](#user-content-check-access-context-and-settings)
* [Failing examples](#user-content-check-access-failing-examples)
* [Passing examples](#user-content-check-access-passing-examples)
Checks that `@access` tags use one of the following values:
- "package", "private", "protected", "public"
Also reports:
- Mixing of `@access` with `@public`, `@private`, `@protected`, or `@package`
on the same doc block.
- Use of multiple instances of `@access` (or the `@public`, etc. style tags)
on the same doc block.
## Context and settings
|||
|---|---|
|Context|everywhere|
|Tags|`@access`|
|Recommended|true|
|Settings||
|Options||
## Failing examples
The following patterns are considered problems:
````ts
/**
* @access foo
*/
function quux (foo) {
}
// Message: Missing valid JSDoc @access level.
/**
* @access foo
*/
function quux (foo) {
}
// Settings: {"jsdoc":{"ignorePrivate":true}}
// Message: Missing valid JSDoc @access level.
/**
* @accessLevel foo
*/
function quux (foo) {
}
// Settings: {"jsdoc":{"tagNamePreference":{"access":"accessLevel"}}}
// Message: Missing valid JSDoc @accessLevel level.
/**
* @access
*/
function quux (foo) {
}
// Settings: {"jsdoc":{"tagNamePreference":{"access":false}}}
// Message: Unexpected tag `@access`
class MyClass {
/**
* @access
*/
myClassField = 1
}
// Message: Missing valid JSDoc @access level.
/**
* @access public
* @public
*/
function quux (foo) {
}
// Message: The @access tag may not be used with specific access-control tags (@package, @private, @protected, or @public).
/**
* @access public
* @access private
*/
function quux (foo) {
}
// Message: At most one access-control tag may be present on a JSDoc block.
/**
* @access public
* @access private
*/
function quux (foo) {
}
// Settings: {"jsdoc":{"ignorePrivate":true}}
// Message: At most one access-control tag may be present on a JSDoc block.
/**
* @public
* @private
*/
function quux (foo) {
}
// Message: At most one access-control tag may be present on a JSDoc block.
/**
* @public
* @private
*/
function quux (foo) {
}
// Settings: {"jsdoc":{"ignorePrivate":true}}
// Message: At most one access-control tag may be present on a JSDoc block.
/**
* @public
* @public
*/
function quux (foo) {
}
// Message: At most one access-control tag may be present on a JSDoc block.
````
## Passing examples
The following patterns are not considered problems:
````ts
/**
*
*/
function quux (foo) {
}
/**
* @access public
*/
function quux (foo) {
}
/**
* @accessLevel package
*/
function quux (foo) {
}
// Settings: {"jsdoc":{"tagNamePreference":{"access":"accessLevel"}}}
class MyClass {
/**
* @access private
*/
myClassField = 1
}
/**
* @public
*/
function quux (foo) {
}
/**
* @private
*/
function quux (foo) {
}
// Settings: {"jsdoc":{"ignorePrivate":true}}
````