verekia / js-stack-from-scratch

🛠️⚡ Step-by-step tutorial to build a modern JavaScript stack.
MIT License
20.09k stars 1.99k forks source link

I got issues after adding flow #237

Open markandersonus opened 7 years ago

markandersonus commented 7 years ago

got a lot of issues on section 2 after adding flow.

also dog.js changed from

module.exports = Dog

to

export default Dog

is that correct

ERRORS node_modules/eslint-plugin-jsx-a11y/src/rules/media-has-caption.js:53 v-------------------------------------- 53: const trackChildren: Array = node.children.filter((child: Node) => { 54: if (child.type !== 'JSXElement') { 55: return false; ...: 60: }); -^ call of method filter. Function cannot be called on any member of intersection type 53: const trackChildren: Array = node.children.filter((child: Node) => { ^^^^^^^^^^^^^^^^^^^^ intersection Member 1: 245: filter(callbackfn: typeof Boolean): Array<$NonMaybeType>; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function type. See lib: C:\Users\MARK~1.AND\AppData\Local\Temp\flow\flowlib_3a00fe38\core.js:245 Error: v----------------- 53: const trackChildren: Array = node.children.filter((child: Node) => { 54: if (child.type !== 'JSXElement') { 55: return false; ...: 60: }); ^ statics of function. This type is incompatible with v----------------------- 106: declare class Boolean { 107: constructor(value?: mixed): void; 108: static (value:any):boolean; ...: 111: } ^ statics of Boolean. See lib: C:\Users\MARK~1.AND\AppData\Local\Temp\flow\flowlib_3a00fe38\core.js:106 Member 2: 246: filter(callbackfn: (value: T, index: number, array: Array) => any, thisArg?: any): Array; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function type. See lib: C:\Users\MARK~1.AND\AppData\Local\Temp\flow\flowlib_3a00fe38\core.js:246 Error: 4924: children: Array; ^^^^ object type. This type is incompatible with the expected param type of. See: node_modules/ast-types-flow/lib/types.js:4924 53: const trackChildren: Array = node.children.filter((child: Node) => { ^^^^ Node

node_modules/eslint-plugin-jsx-a11y/src/rules/media-has-caption.js:59 59: return isTrackType(context, elementType(child.openingElement)); ^^^^^^^^^^^^^^ property openingElement. Property not found in 59: return isTrackType(context, elementType(child.openingElement)); ^^^^^ Node

src/index.js:5 5: const toby = new Dog('Toby') ^^^^^^^^^^^^^^^ constructor call. Constructor cannot be called on 5: const toby = new Dog('Toby') ^^^ CommonJS exports of "./dog"

Found 3 errors

markandersonus commented 7 years ago

added to my .flowconfig

[ignore] ./node_modules/eslint-plugin-jsx-a11y/

now just getting:

5: const toby = new Dog('Toby') ^^^^^^^^^^^^^^^ constructor call. Constructor cannot be called on 5: const toby = new Dog('Toby') ^^^ CommonJS exports of "./dog"

markandersonus commented 7 years ago

changing dog.js back to...

module.exports = Dog

seems to fix it. is it a problem with the part two under: "Add Flow annotations to src/dog.js like so:"

slifty commented 7 years ago

Just wanted to note that I had the same set of issues as @markandersonus although his proposed fixes didn't solve it in my case. For now I'm just going to remove flow from the test script.

maboa commented 7 years ago

I'm seeing the same issues as @slifty - similarly the changes @markandersonus suggests do not fix for me.

qwoz commented 7 years ago

Looks to be related to this issue -- the solution for me was similar to the above-suggested .flowconfig addition:

[ignore]
.*/node_modules/eslint-plugin-jsx-a11y
Laurian commented 7 years ago

I'm using this, found it once somewhere online after a long night of things not working:

[ignore]
<PROJECT_ROOT>/node_modules/.*
artemkovalyov commented 7 years ago

My ignore looks like this and works well for me: [ignore] .*/node_modules/eslint-plugin-jsx-a11y/.*

0xhjohnson commented 7 years ago

Same issue here @qwoz ignore works perfectly in my case

ghost commented 7 years ago

Had same issue, @qwoz's solution worked