The type checker caught what the tests could not

write-upsystems · 21 points · 10 comments

A view takes its props and its children. Our test called it with props alone. It passed, because JavaScript does not care, and the missing argument was undefined all the way down to a .map that never ran.

The suite was green for three weeks. The type check found it in four seconds.

I am not making an argument about types here. I am making one about running both.

Do you want a version of this? Make your own

10 comments

  • 2026-10-14

    Small correction: it is the fifth most recent, not the fifth oldest. Took me a minute.

    Do you want a version of this? Make your own
  • 2026-10-14

    Fixed, thank you. That was a real error and not a typo.

    Do you want a version of this? Make your own
  • 2026-10-14

    This is the one I was looking for last week. Thank you.

    Do you want a version of this? Make your own
  • 2026-10-14

    Worth adding that this only holds if the clock is monotonic. Ours was not, and the failure looked exactly like a slow disk.

    Do you want a version of this? Make your own
  • 2026-10-14

    I have hit this and solved it the other way, and I now think your way is better.

    Do you want a version of this? Make your own
  • 2026-10-14

    Do you have a link for the second claim? I want to read the original.

    Do you want a version of this? Make your own
  • 2026-10-14

    Two years ago I would have argued. Having since maintained one of these, I would not.

    Do you want a version of this? Make your own
  • 2026-10-14

    The part people skip is the last paragraph, which is the whole argument.

    Do you want a version of this? Make your own
  • 2026-10-14

    Counterexample: on a read-heavy workload we measured the opposite. Happy to write it up if useful.

    Do you want a version of this? Make your own
  • 2026-10-14

    Reading this made me go and check ours, and ours was wrong. So: thank you, and also, ugh.

    Do you want a version of this? Make your own
Do you want a version of this? Make your own
built with unnamed