This rule checks the export name is same as filename.
NOTE: this rule is only enabled when parserOptions.ecmaVersion
in .eslintrc
is set to 6
(2015
) or later.
{
"plugins": ["filenames-simple"],
"rules": {
"filenames-simple/named-export": ["error", "singular"]
}
}
Specify one of the following as the file naming convention to which this rule applies.
- always (default): Always check the export name.
- singular: Check the export name only if filename is singular.
- plural: Check the export name only if filename is plural.
-
module.js
// OK export const module = 1;
-
module.js
// NG: You can use `mod.js` or `Mod.js` as filename. export const mod = 1;
-
module.js
// default export is ignored const module = 1; export default module;
-
modules.js
// Multiple named exports are ignored too. const module1 = 1; const module2 = 2; export { module1, module2 };
-
module.js
// It is ignored when the file includes both default export and named export. const module = 1; export default module; export const extraModule = { key: 'value' };
- my-class.js
/* * When the name of exported module is written in camelCase or PascalCase, * the filename can be written in `kebab-case`, `camelCase` or `PascalCase` */ export class MyClass {}
- myFunction.js
// `my-function.js`, `MyFunction.js` is also OK. export function myFunction() {}
- src/rules/index.js
// The rule checks the parent directory name with the name of exported module. export const rules = {};
- src/config/index.js
// Multiple named export are ignored. export { all } from './all'; export { recommended } from './recommended';
- fruits.ts
export enum fruits { orange = 'orange', apple = 'apple', banana = 'banana', }
- identifier.ts
export interface Identifier { name: string; }
- class-expression.d.ts
export type ClassExpression = { id: Identifier };
- @types/espree.d.ts
declare module 'espree' { export function parse(code: string, options?: any): Node; }