Re:Announcing TypeScript 3.0
by sbjs on Monday July 30, 2018 @02:41PM
(#17646866)
If everything is typed in TypeScript, I see a lot of serious potential for optimization, like using only the memory needed per object exactly like a struct in C or C++.
[ Parent
| on HN ]
TypeScript isn't sound, so you can't rely on the types for optimization. The shape/hidden class optimization that JS engines already have is probably about as good as you can do.
The last soundness issue I'm aware of is the bivariant function issue which they resolved in 2.6
You can still do something like this:
let x: number = "some string" as any;That's sort of tautological. "Any" and type assertions are designed as the escape hatch of the type system. If you're trying to develop type safe typescript you obviously won't use those. The followup question is for typed code (excluding usage of any or type assertions) does typescript have an unsound type system? Afaik the answer is no.
In the real world you are forced to use "any" when the type definitions for a third-party library are not perfect.
This actually happens a lot with types from DefinitelyTyped that are not maintained by the original author of the library.
That would be the equivalent of static_cast in c++, or casting via (object) in C#. Both of those are considered type safe but can still be abused also.
I don't get it, I though the whole purpose of typescript is to prevent things like that?
You could still infer sound areas such as certain structs and patterns for using them. They could introduce sound mode or patterns for areas as well.
There is WebAssembly for that now.
I'm not a fan of WebAssembly. I like js because you can instantly reload and test changes to your code without lengthy build or compile times and I'm hoping for typescript to become standard so that the same applies for typescript. I doubt the same will ever be possible with WebAssembly.
Anything more complicated than a little jQuery stuff is going to need build tooling anyway, at least Webpack and probably JSLint and Mocha. Since those are already there, adding either Babel or TyepScript isn't all that difficult.
Just took .284s to re-compile a Rust (stdweb) app targeting WASM.
And well over 2 seconds for Webpack to deal with (just) bundling 6 JS files and the .wasm file.
Re:Announcing TypeScript 3.0
by gameswithgo on Monday July 30, 2018 @04:15PM
(#17647602)
what is lengthy to you?
some languages can compile ~30k lines in 0.5 seconds