Hacker News new | ask | show | jobs
by hath995 2880 days ago
The last soundness issue I'm aware of is the bivariant function issue which they resolved in 2.6
1 comments

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?