HN user

abrioy

4 karma
Posts0
Comments3
View on HN
No posts found.

I have a similar setup at home with an M5Paper[1] to display a daily screenshot of my homeassistant dashboard. It's a neat little device based on an ESP32 chip with an e-ink display and some sensors.

I never thought about using a Kindle, even though I have an old jailbroken Paperwhite... It fits so much better for this usage, and would certainly have saved me days of working around hardware limitation.

[1] https://shop.m5stack.com/products/m5paper-esp32-development-...

You can use a type guard[1] as an argument to Array.filter, but the function has to be explicitly typed as such.

I don't know why the type isn't narrowed in Array.filter like it is in if statements without this weird workaround.

  const array: (number | string)[] = [];
  
  const mixedArray = array.filter(value => typeof value === 'string');
  // mixedArray: (number | string)[]
  const arrayOfString = array.filter((value): value is string => typeof value === 'string');
  // arrayOfString: string[]
This example in Typescript playground: https://www.typescriptlang.org/play?#code/MYewdgzgLgBAhgJwXA...

[1] https://www.typescriptlang.org/docs/handbook/advanced-types....