Showing 363 of 363 total issues
propType "page" is not required, but has no corresponding defaultProp declaration. Open
page: pageType,
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
JSX not allowed in files with extension '.js' Open
<Router
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
'location' PropType is defined but prop is never used Open
location: locationType,
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
Using target="_blank" without rel="noopener noreferrer" is a security risk: see https://mathiasbynens.github.io/rel-noopener Open
<a href="mailto:hello@react.london" target="_blank" rel="noopener">
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
JSX not allowed in files with extension '.js' Open
shallow(<CommunityCodeOfConduct />);
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
Using target="_blank" without rel="noopener noreferrer" is a security risk: see https://mathiasbynens.github.io/rel-noopener Open
target="_blank"
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
propType "src" is not required, but has no corresponding defaultProp declaration. Open
src: React.PropTypes.string.isRequire,
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
Using target="_blank" without rel="noopener noreferrer" is a security risk: see https://mathiasbynens.github.io/rel-noopener Open
target="_blank"
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
Using target="_blank" without rel="noopener noreferrer" is a security risk: see https://mathiasbynens.github.io/rel-noopener Open
<a href={googleMapsUrl(location)} target="_blank" rel="noopener">
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
Absolute imports should come before relative imports. Open
import { shallow } from 'enzyme';
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
Expected parentheses around arrow function argument having a body with curly braces. Open
app.listen(port, '0.0.0.0', error => {
- Read upRead up
- Exclude checks
Require parens in arrow function arguments (arrow-parens)
Arrow functions can omit parentheses when they have exactly one parameter. In all other cases the parameter(s) must be wrapped in parentheses. This rule enforces the consistent use of parentheses in arrow functions.
Rule Details
This rule enforces parentheses around arrow function parameters regardless of arity. For example:
/*eslint-env es6*/
// Bad
a => {}
// Good
(a) => {}
Following this style will help you find arrow functions (=>
) which may be mistakenly included in a condition
when a comparison such as >=
was the intent.
/*eslint-env es6*/
// Bad
if (a => 2) {
}
// Good
if (a >= 2) {
}
The rule can also be configured to discourage the use of parens when they are not required:
/*eslint-env es6*/
// Bad
(a) => {}
// Good
a => {}
Options
This rule has a string option and an object one.
String options are:
-
"always"
(default) requires parens around arguments in all cases. -
"as-needed"
allows omitting parens when there is only one argument.
Object properties for variants of the "as-needed"
option:
-
"requireForBlockBody": true
modifies the as-needed rule in order to require parens if the function body is in an instructions block (surrounded by braces).
always
Examples of incorrect code for this rule with the default "always"
option:
/*eslint arrow-parens: ["error", "always"]*/
/*eslint-env es6*/
a => {};
a => a;
a => {'\n'};
a.then(foo => {});
a.then(foo => a);
a(foo => { if (true) {} });
Examples of correct code for this rule with the default "always"
option:
/*eslint arrow-parens: ["error", "always"]*/
/*eslint-env es6*/
() => {};
(a) => {};
(a) => a;
(a) => {'\n'}
a.then((foo) => {});
a.then((foo) => { if (true) {} });
If Statements
One of benefits of this option is that it prevents the incorrect use of arrow functions in conditionals:
/*eslint-env es6*/
var a = 1;
var b = 2;
// ...
if (a => b) {
console.log('bigger');
} else {
console.log('smaller');
}
// outputs 'bigger', not smaller as expected
The contents of the if
statement is an arrow function, not a comparison.
If the arrow function is intentional, it should be wrapped in parens to remove ambiguity.
/*eslint-env es6*/
var a = 1;
var b = 0;
// ...
if ((a) => b) {
console.log('truthy value returned');
} else {
console.log('falsey value returned');
}
// outputs 'truthy value returned'
The following is another example of this behavior:
/*eslint-env es6*/
var a = 1, b = 2, c = 3, d = 4;
var f = a => b ? c: d;
// f = ?
f
is an arrow function which takes a
as an argument and returns the result of b ? c: d
.
This should be rewritten like so:
/*eslint-env es6*/
var a = 1, b = 2, c = 3, d = 4;
var f = (a) => b ? c: d;
as-needed
Examples of incorrect code for this rule with the "as-needed"
option:
/*eslint arrow-parens: ["error", "as-needed"]*/
/*eslint-env es6*/
(a) => {};
(a) => a;
(a) => {'\n'};
a.then((foo) => {});
a.then((foo) => a);
a((foo) => { if (true) {} });
Examples of correct code for this rule with the "as-needed"
option:
/*eslint arrow-parens: ["error", "as-needed"]*/
/*eslint-env es6*/
() => {};
a => {};
a => a;
a => {'\n'};
a.then(foo => {});
a.then(foo => { if (true) {} });
(a, b, c) => a;
(a = 10) => a;
([a, b]) => a;
({a, b}) => a;
requireForBlockBody
Examples of incorrect code for the { "requireForBlockBody": true }
option:
/*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
/*eslint-env es6*/
(a) => a;
a => {};
a => {'\n'};
a.map((x) => x * x);
a.map(x => {
return x * x;
});
a.then(foo => {});
Examples of correct code for the { "requireForBlockBody": true }
option:
/*eslint arrow-parens: [2, "as-needed", { "requireForBlockBody": true }]*/
/*eslint-env es6*/
(a) => {};
(a) => {'\n'};
a => ({});
() => {};
a => a;
a.then((foo) => {});
a.then((foo) => { if (true) {} });
a((foo) => { if (true) {} });
(a, b, c) => a;
(a = 10) => a;
([a, b]) => a;
({a, b}) => a;
Further Reading
- The
"as-needed", { "requireForBlockBody": true }
rule is directly inspired by the Airbnb JS Style Guide. Source: http://eslint.org/docs/rules/
Unary word operator 'typeof' must be followed by whitespace. Open
const meta = typeof(window) === 'undefined' ? (Helmet.rewind()).meta : null;
- Read upRead up
- Exclude checks
Require or disallow spaces before/after unary operators (space-unary-ops)
Some style guides require or disallow spaces before or after unary operators. This is mainly a stylistic issue, however, some JavaScript expressions can be written without spacing which makes it harder to read and maintain.
Rule Details
This rule enforces consistency regarding the spaces after words
unary operators and after/before nonwords
unary operators.
Examples of unary words
operators:
// new
var joe = new Person();
// delete
var obj = {
foo: 'bar'
};
delete obj.foo;
// typeof
typeof {} // object
// void
void 0 // undefined
Examples of unary nonwords
operators:
if ([1,2,3].indexOf(1) !== -1) {};
foo = --foo;
bar = bar++;
baz = !foo;
qux = !!baz;
Options
This rule has three options:
-
words
- applies to unary word operators such as:new
,delete
,typeof
,void
,yield
-
nonwords
- applies to unary operators such as:-
,+
,--
,++
,!
,!!
-
overrides
- specifies overwriting usage of spacing for each operator, word or non word. This is empty by default, but can be used to enforce or disallow spacing around operators. For example:
"space-unary-ops": [
2, {
"words": true,
"nonwords": false,
"overrides": {
"new": false,
"++": true
}
}]
In this case, spacing will be disallowed after a new
operator and required before/after a ++
operator.
Examples of incorrect code for this rule with the {"words": true, "nonwords": false}
option:
/*eslint space-unary-ops: "error"*/
typeof!foo;
void{foo:0};
new[foo][0];
delete(foo.bar);
++ foo;
foo --;
- foo;
+ "3";
/*eslint space-unary-ops: "error"*/
/*eslint-env es6*/
function *foo() {
yield(0)
}
Examples of correct code for this rule with the {"words": true, "nonwords": false}
option:
/*eslint space-unary-ops: "error"*/
// Word unary operator "delete" is followed by a whitespace.
delete foo.bar;
// Word unary operator "new" is followed by a whitespace.
new Foo;
// Word unary operator "void" is followed by a whitespace.
void 0;
// Unary operator "++" is not followed by whitespace.
++foo;
// Unary operator "--" is not preceded by whitespace.
foo--;
// Unary operator "-" is not followed by whitespace.
-foo;
// Unary operator "+" is not followed by whitespace.
+"3";
/*eslint space-unary-ops: "error"*/
/*eslint-env es6*/
function *foo() {
yield (0)
}
Source: http://eslint.org/docs/rules/
Do not use Array index in keys Open
key={i}
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
'events' PropType is defined but prop is never used Open
events: PropTypes.arrayOf(PropTypes.shape(NextCommunityEvent.propTypes)),
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
propType "summary" is not required, but has no corresponding defaultProp declaration. Open
summary: PropTypes.string,
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
JSX not allowed in files with extension '.js' Open
const output = shallow(<CommunityAbout {...props} />);
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
propType "silver" is not required, but has no corresponding defaultProp declaration. Open
silver: PropTypes.arrayOf(PropTypes.shape(partnerType)),
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
JSX not allowed in files with extension '.js' Open
<a {...linkProps} target="_blank" rel="noopener">{props.children}</a>
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
propType "eventType" is not required, but has no corresponding defaultProp declaration. Open
eventType: PropTypes.string,
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/
JSX not allowed in files with extension '.js' Open
<div className="InterestedSpeaker">
- Read upRead up
- Exclude checks
For more information visit Source: http://eslint.org/docs/rules/