Skip to content
This repository was archived by the owner on Mar 7, 2025. It is now read-only.

Commit e483c50

Browse files
committed
Add rule @typescript-eslint/explicit-member-accessibility
1 parent 1e99ba0 commit e483c50

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ module.exports = defineConfig({
8181
minLength: 3,
8282
skipWords: [
8383
'accessor',
84+
'accessors',
8485
'amd',
8586
'applescript',
8687
'argv',
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import type { RuleConfig } from '../rule-config';
2+
3+
/**
4+
* Accessibility Level.
5+
*/
6+
export type AccessibilityLevel =
7+
| 'explicit' // require an accessor (including public)
8+
| 'no-public' // don't require public
9+
| 'off'; // don't check
10+
11+
/**
12+
* Option.
13+
*/
14+
export type ExplicitMemberAccessibilityOption = {
15+
/**
16+
* This rule in its default state requires no configuration and will enforce that every class member has an accessibility modifier.
17+
*
18+
* @default 'explicit'
19+
*
20+
* @see [accessibility](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md#accessibility)
21+
*/
22+
accessibility?: AccessibilityLevel;
23+
/**
24+
* @see [ignoredMethodNames](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md#except-specific-methods)
25+
*/
26+
ignoredMethodNames?: string[];
27+
/**
28+
* @see [overrides](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md#overrides)
29+
*/
30+
overrides?: {
31+
accessors?: AccessibilityLevel;
32+
constructors?: AccessibilityLevel;
33+
methods?: AccessibilityLevel;
34+
properties?: AccessibilityLevel;
35+
parameterProperties?: AccessibilityLevel;
36+
};
37+
};
38+
39+
/**
40+
* Options.
41+
*/
42+
export type ExplicitMemberAccessibilityOptions = [ExplicitMemberAccessibilityOption?];
43+
44+
/**
45+
* Require explicit accessibility modifiers on class properties and methods.
46+
*
47+
* @see [explicit-member-accessibility](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md)
48+
*/
49+
export type ExplicitMemberAccessibilityRuleConfig = RuleConfig<ExplicitMemberAccessibilityOptions>;
50+
51+
/**
52+
* Require explicit accessibility modifiers on class properties and methods.
53+
*
54+
* @see [explicit-member-accessibility](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md)
55+
*/
56+
export interface ExplicitMemberAccessibilityRule {
57+
/**
58+
* Require explicit accessibility modifiers on class properties and methods.
59+
*
60+
* @see [explicit-member-accessibility](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md)
61+
*/
62+
'@typescript-eslint/explicit-member-accessibility': ExplicitMemberAccessibilityRuleConfig;
63+
}

src/rules/typescript-eslint/index.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { ConsistentTypeAssertionsRule } from './consistent-type-assertions'
77
import type { ConsistentTypeDefinitionsRule } from './consistent-type-definitions';
88
import type { DotNotationRule } from './dot-notation';
99
import type { ExplicitFunctionReturnTypeRule } from './explicit-function-return-type';
10+
import type { ExplicitMemberAccessibilityRule } from './explicit-member-accessibility';
1011
import type { IndentRule } from './indent';
1112
import type { InterfaceNamePrefixRule } from './interface-name-prefix';
1213
import type { MemberOrderingRule } from './member-ordering';
@@ -34,6 +35,7 @@ export type TypeScriptEslintRules = AdjacentOverloadSignaturesRule &
3435
ConsistentTypeDefinitionsRule &
3536
DotNotationRule &
3637
ExplicitFunctionReturnTypeRule &
38+
ExplicitMemberAccessibilityRule &
3739
IndentRule &
3840
InterfaceNamePrefixRule &
3941
MemberOrderingRule &

0 commit comments

Comments
 (0)