DEV Community

Gene
Gene

Posted on

We should get rid of Typescript

I mean, IDEs or Code Editors should be intelligent enough to actually help us type-safe our code, and as well as auto-complete right?

Am I wrong? :D

Top comments (52)

Collapse
 
eshimischi profile image
eshimischi

We should get rid of idea of getting rid of TS.

Collapse
 
gene profile image
Gene • Edited

Not really. I think you should welcome such ideas. After all, TS was introduced and adopted... so why can't it be the other way around? Isn't that how tech works.

Collapse
 
eshimischi profile image
eshimischi

I don't want to. I like TS and studied it not for nothing, you know. Tech works how vendors want it to work - i mean Google, Apple, Microsoft and etc.

Thread Thread
 
gene profile image
Gene

Valid. And that's okay. But stopping others is wrong.

Thread Thread
 
eshimischi profile image
eshimischi

Well you've created this post for opinions. I'm not stopping anyone, just making my opinion as you and others do.

Thread Thread
 
gene profile image
Gene

Hope that's really the case because I got that vibe from your posts. If I am mistaken, then I am wrong. :) Thanks for the opinions

Collapse
 
daelmaak profile image
Daniel Macák

I think it's a good idea in certain projects and in general if the native types proposal makes it past stage 2.

Collapse
 
eshimischi profile image
eshimischi

Well first - it is not "the native types" proposal. JS won't ever be "strongly typed" language as TS..

Thread Thread
 
gene profile image
Gene

That was never the intention of JS in case you missed it.

Thread Thread
 
daelmaak profile image
Daniel Macák

By native I mean that the type information won't make your program un-executable in the native environment, eg. in browser. The proposal aims at providing the type information in a form that can be ignored, just like JSDoc is.

Collapse
 
overflow profile image
overFlow

I'm with you there. There is many other languages we need to get rid of. But before them; let us start here with type script.
What if JS could do Types??? Maybe that is what should happen.

BTW- I see you do React. Do you do any JS?
Or any other languages and did you just start with React if you do other languages ?
Just curious because I'm a JS aficionado.

Collapse
 
syeo66 profile image
Red Ochsenbein (he/him)

Javascript with types... is basically Typescript. But should the browser parse the types? What about the overhead of doing that? Or will we require a build step to strip out the types to have smaller files? Isn't that just Typescript again?

Collapse
 
overflow profile image
overFlow

yeah and then I don't have to learn type-script. I would only learn JavaScript which has type script. i think. we have to concat all these languages if we are to put our energies and knowledged together in one place to reach alien technology knowledgy!!!!

Thread Thread
 
syeo66 profile image
Red Ochsenbein (he/him)

If learning is your problem you might have quite some trouble in this industry

Thread Thread
 
overflow profile image
overFlow

true ....if and only if ...and there is relativity to the subject matter ....There is learning something completely different but then there is learning something that is a knock off and unnecessary. The industry is not gonna go anywhere anytime soon.

Thread Thread
 
syeo66 profile image
Red Ochsenbein (he/him)

Unnecessary? Why? I lerned Elixir and it changed my approach to Javascript. So, learning other styles changes the way you think. Also whatever the type hints in JS will look like, they will take notes from Typescript. There are only so many ways to go about implementing types. Learn the fundamentals, the rest is just syntax. So, when you believe types in Javascript will not require you to learn additional things you'd be very disappointed.

Thread Thread
 
overflow profile image
overFlow

When there is so many languages which one are you going to master very well including the frameworks?!

I feel like the industry is not focused. I feel like there will be a lot of people who know everything- but just acquainted.
It’s like speed dating versus marriage

Thread Thread
 
syeo66 profile image
Red Ochsenbein (he/him)

I feel like you're missing the point. At some point you will realize languages and frameworks are just tools... and they'll change over the years. I went through a lot of those changes already, Java Applets, Flash, PHP, jQuery, React, Next.js, Javascript, ES6+, Typescript, (and probably many more technologies I forgot about). You get good with the things you use daily and learn stuff you'd like to work with in the future. Along the way you realize you stop learning everything from scratch all the time but just learn the differences from what you already know. Because there are only so many things new frameworks and languages really can invent. But why does this even happen? Why do so many languages and frameworks pop up? Simple: Because different people and different applications do have different needs.
So, stop worrying about mastering everything you work with. It will probably be obsolete at some point anyways. One thing never gets obsolete: The fundamentals.

Collapse
 
gene profile image
Gene

For me, I still don't want anything to do with types if I use JS. I'd rather let the IDE/Code editors do it for me.

Yes I do a lot of JS. I use Typescript a lot (2+ years).

Collapse
 
lionelrowe profile image
lionel-rowe • Edited

You can already (partially) do this in VS Code with the Deno extension (and probably other TS-related extensions) — just add // @ts-check at the top of your JS file. Then you can use "Infer types from usage" to get JSDoc type annotations. It won't be able to infer everything, but works well enough for many everyday use cases.

You can also do the same thing in TS files (except the annotations will be TS ones rather than JSDoc, and you don't need to use // @ts-check).

Image description

Collapse
 
gene profile image
Gene

Oh my this is nice! However, what I probably want is overall extinction of Typescript. Haha. TS is really good but...

Collapse
 
algot profile image
AlgoT

But why add all this clutter if you could just have clean TS types + build-time checks?

Collapse
 
lionelrowe profile image
lionel-rowe

As I say, it works with TypeScript just as well as with JSDoc. Personally I usually go with TS, but depends on your personal preference and the needs of your project as to which you choose. I'm just responding to the idea that text editors/IDEs can never infer types from usage, which is wrong.

Collapse
 
avinashega profile image
Avi

Surprise surprise! VSCode uses Typescript tooling under the hood to achieve that!

Collapse
 
gene profile image
Gene

Of course. What else is there?

Collapse
 
daelmaak profile image
Daniel Macák

Depends. If you use JSDoc, sure the hints provided by it are enough to typecheck and autocomplete, as long as you use it everywhere where the JS alone is not enough to infer the types.

If you don't use JSDoc or any other way to declare static types, a substantial part of your codebase won't be possible to be statically typechecked and therefore you won't get coding assistance.

Collapse
 
tiengtinh profile image
Tinh Ngo

I think typescript aren't merely for the sake of type-safety, but rather, a beacon for code comprehension. Types contribute in conveying the author's original intentions, making it easier for future readers to understand the code and for maintainers to make safe changes.

Collapse
 
gene profile image
Gene

That's documentation.

Collapse
 
tiengtinh profile image
Tinh Ngo

That's right. The code is the best source of documentation.

Expressiveness stair:
Image description

Thread Thread
 
gene profile image
Gene

Consulting Documentation should be "best" though.

Collapse
 
leob profile image
leob

No ... it's powerful, and it definitely has its place on more complex projects. Not saying it should be used on every project, but I'm using it on a project now and I definitely feel it has benefits there.

Collapse
 
thatcomputerguy profile image
Griff Polk

Just make JS have Types! But I like typescript 😅

Collapse
 
gene profile image
Gene

Haha then that defeats the purpose.

Collapse
 
thatcomputerguy profile image
Griff Polk

Yeah, hang on. I have an image that defines this.

Collapse
 
thatcomputerguy profile image
Griff Polk

Javascript or Typescript

Collapse
 
raguay profile image
Richard Guay • Edited

A good enough linter (which is just the first part of a compiler) can infer types and auto assign them. Then tell you when a type is being misused. But, I haven't seen a linter that is that good yet. Sad, since there are compilers for some languages with they type of ability. I believe the real issue is that linters are designed to be fast to process the code as you type. But, doing that much checking would make them too slow.

Collapse
 
nermin_karapandzic profile image
Nermin Karapandzic

You are wrong. No the editors can never be smart enough without types and that's the biggest reason we need types. Is there a ton of shit in typescript: yes, should we get rid of it: no.

Collapse
 
gene profile image
Gene

Pretty sure they can.

Collapse
 
ludamillion profile image
Luke Inglis

How can they know the types with no type information?

Collapse
 
raldincasidar profile image
Raldin Casidar

I believe in this. Im with you

Collapse
 
gene profile image
Gene

\m/, and as well as others...

Collapse
 
ludamillion profile image
Luke Inglis

A programming language is a tool like any other. If you don’t like it or it doesn’t fit your use case then don’t use it. But why campaign for eliminating it altogether?

What’s the point of taking away a tool from others because you don’t like it?

Also how is the editor supposed to help with types of the programmer doesn’t tell them what the types are? Where does the ‘intelligence’ come from?

Collapse
 
gene profile image
Gene

In your case, you consider TS as a programming language. I guess this post doesn't apply tothat.

Collapse
 
ludamillion profile image
Luke Inglis

It is a programming language. What else would you call it?

Collapse
 
syeo66 profile image
Red Ochsenbein (he/him)

You still need some type system... including generics and stuff. JSDoc can do that and has benefits especially for library development (no build step). But JSDoc is more tedious to write. So there are trade offs to consider. Also, in any case, you wont get runtime type safety anyways, in contrast to other languages like Rust...

Collapse
 
johnfrades profile image
John Frades

You are wrong. IDE's don't have any idea what really is the type of the things you put out

Collapse
 
gene profile image
Gene • Edited

I know it doesn't, so I that is why I said it "should". But I see where it might be difficult, in objects.

Collapse
 
tylim88 profile image
Acid Coder

Generics say no

Collapse
 
daelmaak profile image
Daniel Macák

Unless you use @template in JSDoc.

Collapse
 
tylim88 profile image
Acid Coder

unless you want to do something like this github.com/gustavoguichard/string-ts

Collapse
 
avinashega profile image
Avi

IDEs and editors use Typescript tooling to do the type checking and autocomplete. So, you are wrong! Also the idea of relying on an IDE to compile your code sounds absurd to me!

Collapse
 
gene profile image
Gene

Of course they do. No one said they don't.