logoalt Hacker News

sheepttoday at 2:50 AM3 repliesview on HN

One of the strengths of TypeScript besides its expressiveness is that it's compatible with the massive npm ecosystem. Most packages only ship untyped JavaScript with type declarations defining the interface,[0] so realistically you'd still need a JavaScript engine if you use any packages.

But if you're starting from scratch and know you won't be using any npm packages, you might as well use AssemblyScript.[2]

[0]: Publishing packages in TypeScript is explicitly discouraged by Node[1]. TypeScript isn't backwards compatible even in minor releases, and its compiler settings aren't portable for packages.

[1]: https://github.com/nodejs/node/blob/main/doc/api/typescript....

[2]: https://www.assemblyscript.org/


Replies

simonwtoday at 2:54 AM

> so realistically you'd still need a JavaScript engine if you use any packages.

Looks like Scriptc's solution to that problem is that it can optionally bundle a 620KB quickjs-ng JavaScript engine if you have dependencies that need to be executed that way.

skybriantoday at 8:19 AM

I would use it for a focused command-line tool that needs to share code with a larger TypeScript project, not for code with a lot of dependencies.

bbortoday at 3:04 AM

Those are good reasons to publish untyped libraries as a rule, sure. But the contention that those reasons outweigh the value of types kinda boggles the mind, ngl!

show 1 reply