js-stack-from-scratch
js-stack-from-scratch copied to clipboard
Flow error?
Type of issue: bug
Chapter: 2
If it's a bug:
$ yarn test
yarn test v0.24.5
$ eslint src && flow
node_modules/eslint-plugin-jsx-a11y/src/rules/media-has-caption.js:53
v--------------------------------------
53: const trackChildren: Array<JSXElement> = 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<JSXElement> = node.children.filter((child: Node) => {
^^^^^^^^^^^^^^^^^^^^ intersection
Member 1:
231: filter(callbackfn: typeof Boolean): Array<$NonMaybeType<T>>;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function type. See lib: /private/tmp/flow/flowlib_8895270/core.js:231
Error:
v-----------------
53: const trackChildren: Array<JSXElement> = 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: /private/tmp/flow/flowlib_8895270/core.js:106
Member 2:
232: filter(callbackfn: (value: T, index: number, array: Array<T>) => any, thisArg?: any): Array<T>;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function type. See lib: /private/tmp/flow/flowlib_8895270/core.js:232
Error:
4924: children: Array<Node>;
^^^^ 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<JSXElement> = 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:7 7: const toby = new Dog('Toby') ^^^^^^^^^^^^^^^ constructor call. Constructor cannot be called on 7: const toby = new Dog('Toby') ^^^ CommonJS exports of "./dog"
Found 3 errors error Command failed with exit code 2.
This is the first problem I ran into.
I don't think I deviated from the script, but will check some more.
If I remove "&& flow" from "yarn test", I get:
acme:scratch bryn$ yarn start yarn start v0.24.5 $ babel-node src /Users/bryn/scratch/src/index.js:7 var toby = new Dog('Toby'); ^
TypeError: Dog is not a constructor
at Object.
Keep flow in your yarn test section. To get rid of the first bug add your .flowconfig file this block:
[ignore]
.*/node_modules/eslint-plugin-jsx-a11y/*
Do not add whole node_modules directory since it causes some other flow check errors.
Should this be reported to the eslint plugin?
@bryndyment I put in a PR to fix this, if you want to review it and thumbs up it! https://github.com/verekia/js-stack-from-scratch/pull/244