verekia/js-stack-from-scratch

I got issues after adding flow

markandersonus opened this issue ยท 9 comments

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\MARK1.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

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"

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:"

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

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

qwoz commented

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

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

[ignore]
<PROJECT_ROOT>/node_modules/.*

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

Same issue here @qwoz ignore works perfectly in my case

Had same issue, @qwoz's solution worked