3 ms·
Typescript is a good try, but ultimately our favourite JS runtime errors still happen, even with all the strictest ts settings. Syntactically it is quite clumsy
by throwaway09432 4y ago
Typescript is a good try, but ultimately our favourite JS runtime errors still happen, even with all the strictest ts settings. Syntactically it is quite clumsy, you can see the uninspired mix of C++ and Java in there. The typings now although people are doing lots of cute things with them, don't do some really fundamental things. For example there is currently no sensible way to type a non empty array in Typescript. Also the discriminated union with the identifying string literal in there is not terribly elegant.
Personally I wish either Rescript or Purescript gained adoption instead.
- NoInkling 4y ago> there is currently no sensible way to type a non empty array in Typescript If we remove the "sensible" requirement: type NonEmptyArray = [any, ...any[]]
- triyambakam 4y agoOr better: type NonEmptyArray = [unknown, ...unknown[]]; const nea: NonEmptyArray = []; // ^^^ Type '[]' is not assignable to type 'NonEmptyArray'. // Source has 0 element(s) but target requires 1.
- throwaway09432 4y agoCan you map over this and preserve the NonEmptyArray type?
- triyambakam 4y agoDo you mean pass in a type? type NonEmptyArray<T> = [T, ...T[]];
- throwaway09432 4y agoI mean if I have a NonEmptyArray say xs, and I then xs.map(x=>2*x), will the result of this expression be a NonEmptyArray ?
- triyambakam 4y agoNo, unfortunately it will just be number[] as the return type.