how it works + limits: github.com/danfry1/typescrip…
playground: typescriptlang.org/play?#cod…
Built an open benchmark off the back of this: 5 typescript checkers, 3 real projects, raw output behind every result
Controlled numbers come in under my quick first run. tsc-ts is 4.5x faster than tsgo on type-fest at defaults, 3.4x with both at 10 threads.
ts-checker-bench.danfry.dev
cc @ctatedev @theo @boshen_c @jarredsumner if anything's set up wrong for your tool let me know and i'll fix it and rerun
repo if you'd rather dig in there: github.com/danfry1/ts-checke…
Daniel Fry retweeted
hey. here's a little demo of the most meaningful improvement to my productivity since speech-to-text.
another use: Ethereum addresses vs hashes (the case @MicahZoltu asked for in TypeScript issue #52243).
Address = exactly 40 hex chars, Hash = exactly 64, so mixing them up is a compile error. no brands, no runtime code.
playground: typescriptlang.org/play/?#co…
xitter.cf/techsavvytravvy/status…
builds on @techsavvytravvy's non-empty string trick. his gives you a minimum length, the `"" & String` end marker gives you an exact one.
i found a way to represent a non-empty string without branded types and without using `any`

ALT TypeScript code defining a NonEmptyString type that only accepts strings with at least one character, without using branded types or `any`. The example assigns a normal string successfully, then shows an empty string assignment marked as a type error. Below, a Zod schema builds the same rule at runtime with z.string().refine(...), checking that the string length is greater than zero and returning the message string must contain at least one character.
Have also really been enjoying using the North Mini Code model from @cohere
Built a vim-modal Spotify TUI in Go. Album art rendered with Unicode half-blocks, full vim keybindings, command mode.
Powered by @charmcli








