mirror of
https://github.com/airbnb/javascript.git
synced 2026-01-14 04:38:00 -05:00
[eslint config] [breaking] Add no-dupe-class-members rule + section.
Closes #785.
This commit is contained in:
30
README.md
30
README.md
@@ -21,7 +21,7 @@ Other Style Guides
|
||||
1. [Strings](#strings)
|
||||
1. [Functions](#functions)
|
||||
1. [Arrow Functions](#arrow-functions)
|
||||
1. [Constructors](#constructors)
|
||||
1. [Classes & Constructors](#constructors)
|
||||
1. [Modules](#modules)
|
||||
1. [Iterators and Generators](#iterators-and-generators)
|
||||
1. [Properties](#properties)
|
||||
@@ -894,7 +894,7 @@ Other Style Guides
|
||||
**[⬆ back to top](#table-of-contents)**
|
||||
|
||||
|
||||
## Constructors
|
||||
## Classes & Constructors
|
||||
|
||||
<a name="constructors--use-class"></a><a name="9.1"></a>
|
||||
- [9.1](#constructors--use-class) Always use `class`. Avoid manipulating `prototype` directly.
|
||||
@@ -1008,7 +1008,7 @@ Other Style Guides
|
||||
```
|
||||
|
||||
<a name="constructors--no-useless"></a><a name="9.5"></a>
|
||||
- [9.5](#constructors--no-useless) Classes have a default constructor if one is not specified. An empty constructor function or one that just delegates to a parent class is unnecessary. [`no-useless-constructor`](http://eslint.org/docs/rules/no-useless-constructor)
|
||||
- [9.5](#constructors--no-useless) Classes have a default constructor if one is not specified. An empty constructor function or one that just delegates to a parent class is unnecessary. eslint: [`no-useless-constructor`](http://eslint.org/docs/rules/no-useless-constructor)
|
||||
|
||||
```javascript
|
||||
// bad
|
||||
@@ -1036,6 +1036,30 @@ Other Style Guides
|
||||
}
|
||||
```
|
||||
|
||||
<a name="classes--no-duplicate-members"></a>
|
||||
- [9.6](#classes--no-duplicate-members) Avoid duplicate class members. eslint: [`no-dupe-class-members`](http://eslint.org/docs/rules/no-dupe-class-members)
|
||||
|
||||
> Why? Duplicate class member declarations will silently prefer the last one - having duplicates is almost certainly a bug.
|
||||
|
||||
```javascript
|
||||
// bad
|
||||
class Foo {
|
||||
bar() { return 1; }
|
||||
bar() { return 2; }
|
||||
}
|
||||
|
||||
// good
|
||||
class Foo {
|
||||
bar() { return 1; }
|
||||
}
|
||||
|
||||
// good
|
||||
class Foo {
|
||||
bar() { return 2; }
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
**[⬆ back to top](#table-of-contents)**
|
||||
|
||||
|
||||
|
||||
@@ -35,6 +35,9 @@ module.exports = {
|
||||
}],
|
||||
// disallow modifying variables that are declared using const
|
||||
'no-const-assign': 2,
|
||||
// disallow duplicate class members
|
||||
// http://eslint.org/docs/rules/no-dupe-class-members
|
||||
'no-dupe-class-members': 2,
|
||||
// disallow importing from the same path more than once
|
||||
// http://eslint.org/docs/rules/no-duplicate-imports
|
||||
'no-duplicate-imports': 2,
|
||||
|
||||
Reference in New Issue
Block a user