viv icon indicating copy to clipboard operation
viv copied to clipboard

Adopt TypeScript

Open ilan-gold opened this issue 8 months ago • 1 comments
trafficstars

User story deck.gl adopted full TypeScript some time ago making it easier for us to do the same. At the moment, only the loaders are typed (in part for this reason - deck.gl did not support TypeScript for some time).

The benefits here are manifold, but mainly, it would make developing downstream applications much easier (targeting the recent issues in Avivator, for one).

Preferred solution Adopt TypeScript subpackage-by-subpackage:

  • [ ] extensions
  • [ ] layers
  • [ ] viewers
  • [ ] views
  • [ ] main (just index.js)

loaders and constants both already use TypeScript.

Possible alternatives

JSDoc-as-TypeScript (see https://github.com/higlass/higlass/issues/1162 for example) would be an alternative route but given that this package (a) has independent subpackages and (b) is relatively small (minus loaders which are typed already), I think TypeScript is the way to go.

ilan-gold avatar Feb 28 '25 14:02 ilan-gold

Agree with choice of TS here. In HiGlass we decided on JSDoc because it's uncertain if we'll ever fully type the codebase and I wasn't sure how many others working on the code base used TS. I didn't want to leave it in a state where we partially type things but then stop type checking or something but then have added TypeScript as a dependency long term. There if we want to drop TS, we just remove it as a dependency (leaving behind the (un)checked TS comments).

Since we've already introduced TS to the code base, I don't have the same concerns>

manzt avatar Feb 28 '25 14:02 manzt