Тёмный

Stop Using {} In TypeScript 

Web Dev Simplified
Подписаться 1,6 млн
Просмотров 457 тыс.
50% 1

Опубликовано:

 

30 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 264   
@1DrowsyBoi
@1DrowsyBoi 6 месяцев назад
Type-safe language programmers: "Look what they need just to mimic a fraction of our power."
@abh1yan
@abh1yan 4 месяца назад
hate from javascript developer
@bbarreir0153
@bbarreir0153 3 месяца назад
In all fairness, strict TS is almost like Java, as long as you dont use "any" or some stupid typing. We can just ignore the typing and if you don't do weird things you'll almost always get the correct type inferred, specially with the latest versions of TS. TS is not JS
@mr.k8660
@mr.k8660 3 месяца назад
You ain't building no web UI with those type safe languages tho
@JamieTwells
@JamieTwells 2 месяца назад
Typescripts type system is better than most popular type-safe language type systems. Discriminated unions, duck typing, intersection types, conditional types, mapped types and so much more.
@edhofiko3168
@edhofiko3168 2 месяца назад
​@@mr.k8660 say hello to wasm, you can now write front end web in C.
@abhayprince
@abhayprince Год назад
I name it key instead of index. { [key:string] : unknown }
@j.r.r.tolkien8724
@j.r.r.tolkien8724 Год назад
Makes more sense. I thought it had to be named index.
@dorian0623
@dorian0623 10 месяцев назад
I'd also use key or property but index should be just fine as it stands for index signature
@ninhdang1106
@ninhdang1106 10 месяцев назад
Same thing but I use the Record syntax instead. Kinda more pleasing to look at
@cat7cable
@cat7cable 10 месяцев назад
And it works
@Percevaaaal
@Percevaaaal 7 месяцев назад
Same here 👌
@nomadshiba
@nomadshiba Год назад
also you can do `Record` `PropertyKey` shorthand for `string | symbol | number`
@nneddenn6207
@nneddenn6207 Месяц назад
Nice to know! Thanks
@und0
@und0 11 месяцев назад
you should mention the `object` (note lowercase) this is the most generic pure object you can specify, usually useful it you're extended a generic. function foo (bar: T) { return Object.keys(bar) }
@christianpuldon7201
@christianpuldon7201 Год назад
For a split second I read "Stop using TypeScript"
@FkDJT-ut1hm
@FkDJT-ut1hm 3 месяца назад
And that would have been good advice.
@teawrld5976
@teawrld5976 3 месяца назад
​@@FkDJT-ut1hm why?
@anere5326
@anere5326 3 месяца назад
@@teawrld5976 he has been paralysed by fear
@borsukk
@borsukk 2 месяца назад
​@@teawrld5976because it's bad. use c# or use jsx for frontend
@darshitgajjar5199
@darshitgajjar5199 22 дня назад
please make more and more shorts. I love your content
@devperatetechno8151
@devperatetechno8151 Год назад
thanks kyle, keep with the snippets of TS
@andrewjarrett132
@andrewjarrett132 Год назад
Record won't exclude arrays though. If you want to exclude arrays, you'll need to do `Record`. There are a few small corner cases where `Record` is too strict, but those don't come up much in user-land.
@brettchan3572
@brettchan3572 11 месяцев назад
You sure? type personData = Record; // This will cause a TypeScript error because it doesn't match the declared type function f(obj: personData) { return obj; } f(["3"]) // Argument of type 'string[]' is not assignable to parameter of type 'personData'.Index signature for type 'string' is missing in type 'string[]'.ts(2345)
@andrewjarrett132
@andrewjarrett132 11 месяцев назад
I assumed you’d be putting the type in a generic (which is usually what you want - if your use case looks like that, it’s probably fine to just use `object` and allow arrays)
@theefeold
@theefeold 3 месяца назад
how tf are you supposed to make an array with string indexes?
@andrewjarrett132
@andrewjarrett132 3 месяца назад
​@@theefeoldit's not that arrays have string indexes, it's that arrays have methods, and methods are strings. The symbol trick is a hack that only works because it takes advantage of how index signatures work in the TS type system -- and it's not bulletproof. An interface declared that way -- interface MyInterface { [x: symbol]: unknown } will behave* differently (unfortunately)
@dimarak8866
@dimarak8866 5 месяцев назад
One could just type it like this: type Obj = { name: string; surname: string; }; Record is only needed if you want to build a versatile function that handles different objects with the same structure or if you expect an object from an API f.ex. to change property names in the future
@IStMl
@IStMl 5 месяцев назад
You can't pass any object with the type you defined. Thats the whole point of this short.
@dumbfailurekms
@dumbfailurekms 4 месяца назад
@@IStMl Isn't date an object.. The point of this short is specifically to allow objects where the key is of type string and the value is unknown to ts (or similar definitions) but ANY object should accept date
@thefanboy3285
@thefanboy3285 6 месяцев назад
The title made me think for a moment there was a trick in TS to get rid of the block scope delimiters "{" "}" lol
@AdamLeis
@AdamLeis Год назад
I've been all up in Record in the past months. It seems cleaner to my eyes for some reason than the key index approach (2nd version he showed).
@RonnieMcNutt_Mindblowing
@RonnieMcNutt_Mindblowing Год назад
Me watching this even though I know nothing about coding: Very nice
@IAmLesleh
@IAmLesleh Год назад
No better time to start
@x3zlo
@x3zlo Год назад
​@@IAmLeslehI think this person wants to finish, not start 😏
@graphicdesignandwebsolutio365
@graphicdesignandwebsolutio365 11 месяцев назад
Fuck typescript
@ivansostarec2564
@ivansostarec2564 8 месяцев назад
You should try coding
@Dipj01
@Dipj01 4 месяца назад
​@@IAmLeslehactually it's the worst time to start
@bob_kazamakis
@bob_kazamakis Год назад
{} is actually pretty powerful when you want to accept any value that isn’t undefined or null. It’s an any, but that any must exist
@GurjotSingh-no4hx
@GurjotSingh-no4hx Год назад
wouldn't the same apply to the 2 alternate solutions he provided?
@3UM6A6BE
@3UM6A6BE Год назад
You can make your intention more clear by using NonNullable
@alexcoroza4518
@alexcoroza4518 Год назад
If you do not want to accept null or undefined then you can configure you typescript's strictNullChecks to true
@bob_kazamakis
@bob_kazamakis Год назад
@@GurjotSingh-no4hxno. Record limits the expectation to an object and not any of the aforementioned primitives
@bob_kazamakis
@bob_kazamakis 4 месяца назад
@@alexcoroza4518that’s not the point or intent of what I’m saying
@unknownguywholovespizza
@unknownguywholovespizza Год назад
Deno helped me a lot to learn TypeScript and avoid some bad practices such as this one
@fx-ry5iu
@fx-ry5iu 2 месяца назад
sometimes you may need this type IsObject = T extends (null | Date | unknown[]) ? never : T extends object ? T : never;
@nostalgia5031
@nostalgia5031 6 месяцев назад
Doing “Record” also works
@IStMl
@IStMl 5 месяцев назад
did you not watch the short?
@ffuego9751
@ffuego9751 Год назад
These shorts are awesome, goat js/ts content creator
@ibnlanre
@ibnlanre 3 месяца назад
type Param = Record; Object keys can be a string | number | symbol.
@ignrey
@ignrey 2 месяца назад
Surprisingly useful short
@pavankumard5276
@pavankumard5276 11 месяцев назад
Commenting so that youtube recommends more of these type of shorts❤
@sterin557
@sterin557 Год назад
Need more typescript stuff
@rtpHarry
@rtpHarry 10 месяцев назад
Great shorts normally but I never bump into this issue, which is confusing as you say "by far the most common issue". If it's being passed like that its normally more defined like as an interface, or as you recommend a type. I never go near the Object type directly.
@abe_is_live
@abe_is_live 5 месяцев назад
Yea what's the point of using typescript if you don't want to define what the structure looks like lol
@adityatripathi1904
@adityatripathi1904 Год назад
Record
@orterves
@orterves 2 месяца назад
For most programming, you should take the time to define your types clearly. Eg here don't pass i. Record, pass in type or interface with exactly the fields you need in that function, no more or less
@j.r.r.tolkien8724
@j.r.r.tolkien8724 Год назад
More please. I'm transitioning to Typescript.
@ghdshds1899
@ghdshds1899 4 месяца назад
don’t
@spythere
@spythere 4 месяца назад
They were not seen again... That's the price of moving to TS.
@j.r.r.tolkien8724
@j.r.r.tolkien8724 4 месяца назад
There's literally no price of moving to TS. That's the great thing about it. Just wirte your js in a .ts file. You'll lose nothing and whatever you can add a type to you reap the benefit. You don't have to go deep into types. You can just minimize the mistakes.
@ghdshds1899
@ghdshds1899 4 месяца назад
@@j.r.r.tolkien8724 the price is now you use typescript and you have officially adopted the worst implementation of types in any programming language
@Pr0methium
@Pr0methium 3 месяца назад
@@j.r.r.tolkien8724 Yeah + intellisense, your code is eventually more safe logic-wise as well, pretty good for a production environment.
@roshan4348
@roshan4348 3 месяца назад
Great typescript video!
@vitalysuper3193
@vitalysuper3193 4 месяца назад
object, Record, …And object of ANY form: Record
@MarcinCebula
@MarcinCebula 4 месяца назад
You could do that...but...should you? you can `typeof ` an object or create a class. At this point you might as well just say `any`
@travispulley5288
@travispulley5288 Год назад
Super helpful! Relaxes my brain to think of it this way
@hadawardgz
@hadawardgz 3 месяца назад
Sure, now try this and see if you can pass a date object: type Foo = { bar: string; } It will only pass if date has the properties that the object needs. If it doesn't, then it doesn't work, and if it does, great, I won't look for properties other than those necessary. And, for any reason if you need to allow objects of unknown properties then you can just: type Param = { [K: PropertyKey]: unknown };
@distantv0ice
@distantv0ice 4 месяца назад
I knew about Record but then I wanted to type an empty object (to fill with keys and value later) and that turned out to be a problem. Using {} works for the moment.
@solomonowusu-ansah1751
@solomonowusu-ansah1751 11 месяцев назад
I use the second option. But I've learnt another way. Thanks
@cypherusuh
@cypherusuh Год назад
this makes TS A LOT more complex than I thought...
@johnsoto7112
@johnsoto7112 Год назад
I love the record syntax over the 2nd one
@risitas5874
@risitas5874 Год назад
Thanks for teaching me this, although I don't think I will be adopting this pattern. The codebase has to be already be using it
@nomadshiba
@nomadshiba 11 месяцев назад
Also you can still use it, its a great way to tell that something is anything but non nullable
@ilkinismailov4438
@ilkinismailov4438 7 месяцев назад
{} means "anything but a `null` or `undefined`"!
@StuartLoria
@StuartLoria 10 месяцев назад
Actually useful, I could use a longer video, interesting topic.
@riacharda
@riacharda 10 месяцев назад
I'm guilty of doing this. Massive thanks 👍🏾
@justindouglas3659
@justindouglas3659 Год назад
Can you do a typescript tutorial?
@FurryDanOriginal
@FurryDanOriginal Год назад
I can recommend Matt Pocock for that.
@justindouglas3659
@justindouglas3659 Год назад
@@FurryDanOriginal ok thnx do ypu happen to know someone for php. Seems i need to learn it anyway.
@FurryDanOriginal
@FurryDanOriginal Год назад
@@justindouglas3659 Unfortunately no. Outside of some basics, I never needed PHP nor was interested in it. But by searching for PHP tutorials you surely should find a lot of creators and just stick to the one who seems to flow with your prefered style of learning the best.
@Me-vc4sf
@Me-vc4sf 6 месяцев назад
​@@justindouglas3659 "php for beginners " from laracast channel one of the best php tutorial ever
@PatoFrango
@PatoFrango 4 месяца назад
I think something like this in Python wouldn't be a problem since the language clearly distinguishes between "dictionaries" and objects that are "instances of classes"
@urban8499
@urban8499 Год назад
Hey thanks , never knew about this
@siya.abc123
@siya.abc123 Год назад
Thank you so much Kyle! I've been struggling to type the ioredis georadius result. This will help me
@nozomi_tailwind
@nozomi_tailwind Год назад
i use the 2nd method cz i can easily understand like writing the object itself
@asherrfacee
@asherrfacee Год назад
Date is an object, most people want it as an object. This is an interesting case where want to exclude Date. According to the Typescript team, you should only use Record utility type when you want a strictly defined dictionary-like object, so your use case here is more of a hack imo. I recommend using a simple conditional type: function processObjectWithoutDate(obj: T extends Date ? never : T): void { // Process the object // ... }
@unknownguywholovespizza
@unknownguywholovespizza Год назад
Ay man this is so unreadable
@asherrfacee
@asherrfacee Год назад
@@unknownguywholovespizza This is a niche case when you want to accept all types except for a single type, therefore “T extends ? never : T” is exactly the type of readable logic you would want. It doesn’t rely on any unintended behavior to work. It works for multiple cases, not just for Dates. And this is the recommended approach from the Typescript team.
@Ba_Dashi
@Ba_Dashi 15 дней назад
Programmer: tells the language that the argument should be an object. Also programmer: passes a Date, which is by definition an object "Woahh why is the labguage allowed this?"
@OliverEbsworth
@OliverEbsworth Год назад
I use an Interface and mark each things as its type instance objI { name: string, email: string, image: string, } Is this wrong?
@alexcoroza4518
@alexcoroza4518 Год назад
yeah. in Angular this is how they type things and it should be on most projects using typescript
@OliverEbsworth
@OliverEbsworth Год назад
@@alexcoroza4518 cheers man, I appreciate your reply.
@asherrfacee
@asherrfacee Год назад
Using an interface/type/class when you are expecting a specific object type is definitely the best option. In the rare case that you want to accept any object except a Date, instead of using his solution, I recommend using a conditional type: function processObjectWithoutDate(obj: T extends Date ? never : T): void { // Process the object // ... }
@yohanlopes1847
@yohanlopes1847 7 месяцев назад
amazing, thanks!
@geneticallytails
@geneticallytails 4 месяца назад
By far the most common mistake junior devs make is thinking they are smarter than a compiler and throw away readability for pointless char saving ideas. Also doing micro-optimizations on the behalf of readability... Edit: Just waiting for the smartass to write: "less chars = less file weight and possibly less exec time"... the compiler is there for a reason.
@Mohamed_MDJ
@Mohamed_MDJ 6 месяцев назад
I didn't learn typescript yet , but I can easily understand what did you write, so is it very simple?
@FkDJT-ut1hm
@FkDJT-ut1hm 3 месяца назад
Cool. I'll go back to writing code that doesn't break because of a lack of knowledge when it comes to data types and how they are used; ergo needing a whole other language just to over-specify my dataums.
@anshXR
@anshXR Год назад
bro how u so majestic
@T1Oracle
@T1Oracle 11 месяцев назад
My frustration is anytime I use typescript with a 3rd party library with broken, missing, and overly complicated types. Fighting both Typescript and a new library, is too much. I usually give up and revert to "any."
@111sam1
@111sam1 4 дня назад
Difference between any and unkown?
@hikari1690
@hikari1690 2 месяца назад
I'm a dinosaur who doesn't use typescript so I don't need to worry about this 🤣
@pierrehenriot2480
@pierrehenriot2480 Год назад
Are you Captain Pike's son ?
@pixelotetm
@pixelotetm Год назад
That record is the same as Map< String, dynamic> in dart programing, actually for dart to be able to work with Json, it needs to be converted to a Map of Strings keys and dynamic values
@asherrfacee
@asherrfacee Год назад
If you want a custom type for representing JSON objects in typescript, that provides additional type safety then I recommend the following: type JSONValue = string | number | boolean | null | JSONValue[] | Record;
@TheDLK
@TheDLK Год назад
What's the difference between using Record & Record ?
@unknownguywholovespizza
@unknownguywholovespizza Год назад
Unknown will throw an error until you check the type. Any will disable type checking and you don't have to check the type before using whatever you want
@Bohdan29
@Bohdan29 11 месяцев назад
This won't work if you have an object that is declared as an interface.
@IStMl
@IStMl 5 месяцев назад
just dont mix types and interfaces
@sciencemommy
@sciencemommy Год назад
Thanks!
@Naej7
@Naej7 Год назад
You look like a Meghan Markle copycat
@WebDevSimplified
@WebDevSimplified Год назад
You are very welcome!
@rammahkarpous
@rammahkarpous 5 месяцев назад
Cool, thanks 👌🏾
@preciouschidi5131
@preciouschidi5131 Год назад
Hello Kyle you have been of a great help to me in the last few years as a self-taught developer. Right now I need a job. It has been a real issue for me. I have been a developer of self, building projects for clients as a freelance but I really want to go out of this shell and work in real life company. This is a great problem for me. Please I need your help.
@mahadevovnl
@mahadevovnl Год назад
What about nested objects
@SRG-Learn-Code
@SRG-Learn-Code Год назад
I hope JStypes come soon so we can stop with the TS madness.
@richardflosi
@richardflosi Год назад
There is a spec for js comment annotations is the works, but it’s still some that 3rd parties like TS would read for typing.
@mosesgelberg
@mosesgelberg 3 месяца назад
Why `unknown` and not `any`? What's the difference?
@bronzekoala9141
@bronzekoala9141 Год назад
Nice tip, but how on earth is this the "most common mistake"?? I've never even come into a situation where I could've done this mistake.
@sqfzerzefsdf
@sqfzerzefsdf Год назад
@bronzekoala9141 like he said everything inherits from object so there's a lot of potential reason to pass one around and there's plenty of room for mistakes due to how unintuitive something as abstract as object is
@asherrfacee
@asherrfacee Год назад
I agree, not a common mistake. I’ve been writing typescript for 10 years. This is a weird niche case where you want strictly compile time type checking for any object except a Date. I say strictly compile time cause you could always use runtime validation for Date very easily which most cases would likely use. His advice to never use object I find to be questionable advice, and his suggested use of the Record utility type is wrong according to the Typescript team. Record should only be used when you want strictly typed dictionary-like object. If you want to exclude date just use a conditional type: function processObjectWithoutDate(obj: T extends Date ? never : T): void { // Process the object // ... }
@birthdayzrock1426
@birthdayzrock1426 6 месяцев назад
maybe it's really uncommon, but still the most common lol
@RS-fz4ps
@RS-fz4ps 4 месяца назад
If you knew the desired members of you Param, why wouldn’t you define a class for it instead? Isn’t that the point of typescript?
@LeroyCellador
@LeroyCellador 4 месяца назад
Why not specifying the fields for the object type?
@btoann
@btoann Год назад
This one doesnt work with interface. I have googled for some solutions, but almost of it are recommended replace type instead or using Record which i see no different from Object/any. Does anyone have another idea!?
@asherrfacee
@asherrfacee Год назад
You should only use Record utility type when you want a strictly defined dictionary-like object, so his solution is more of a hack. In his example, it’s a simple case where you want to just exclude the Date type, so using a simple conditional type to exclude Date is the best option: function processObjectWithoutDate(obj: T extends Date ? never : T): void { // Process the object // ... }
@Darkpill-2
@Darkpill-2 Год назад
JavaScript has bigger problems than type checking. This is why projects are starting to dump typescript.
@rutabega306
@rutabega306 Месяц назад
I mean nothing wrong with typing it as object. Maybe next time use a more realistic function where using the Record type is superior
@patrickconrad2874
@patrickconrad2874 3 месяца назад
Trying to make a react query clone and having a hard time wrapping my head around this concept. I want to easily store state values on any given page. This works to pass unknown state types, but now I'm wondering if there is a way to get full typing from the unknown values down stream? Anyone have any advice on this concept?
@keleheart6632
@keleheart6632 4 месяца назад
everyday I think I get it and then I get proven wrong
@zack2415
@zack2415 Год назад
Why not use an interface ?
@ikelos8190
@ikelos8190 4 месяца назад
or just use interfaces?
@Mari_Selalu_Berbuat_Kebaikan
@Mari_Selalu_Berbuat_Kebaikan 4 месяца назад
Let's always do alot of good
@roronoa_d_law1075
@roronoa_d_law1075 Год назад
Is it possible to have not string keys ?
@asherrfacee
@asherrfacee Год назад
Yes, you can also use numbers and symbols: // Using numbers as keys type NumberRecord = Record; const numberObject: NumberRecord = { 1: "One", 2: "Two", 3: "Three" }; // Using symbols as keys const symbolKey1 = Symbol(); const symbolKey2 = Symbol(); type SymbolRecord = Record; const symbolObject: SymbolRecord = { [symbolKey1]: 42, [symbolKey2]: 99 };
@JohnCostanzo
@JohnCostanzo Год назад
I think biggest mistakes is not properly setting up a tsconfig.
@alexcoroza4518
@alexcoroza4518 Год назад
why not use interface?
@razimomin9540
@razimomin9540 Месяц назад
Basically typescript is a problem for a solution 😂
@trFirzen
@trFirzen Год назад
I see these videos after I do these mistakes lol. Are you following my code?
@sidthetech7623
@sidthetech7623 Год назад
What we need is a typescript solution... for typescript. And we need more frameworks on top of frameworks on top of frameworks on top of frameworks on top of frameworks. Life feeds on life feeds on life feeds on life feeds on life... You can typescript if you want to. You can leave vanilla js behind... and if your friends dont dance with typescript down their pants, well their no friends of mine. Typesafety Dance 💃 🕺
@inzdvl
@inzdvl Год назад
I always love those videos with devs that are spending couple of minutes here and there just to be type safe instead of focusing on the actual code :D. This is priceless…
@Dev-Siri
@Dev-Siri Год назад
this comment is harder to discern than trying to find the end of a class name in a java app.
@Naej7
@Naej7 Год назад
@@inzdvlIf you’ve never had a type error before, you’ve never coded in your life. Also, typing enables autocompletion, so that I can focus on the actual code instead of looking for the documentation every time..
@juraev0056
@juraev0056 Год назад
​@@Naej7pretty much any editor can do autocompletion without typescript.
@Naej7
@Naej7 Год назад
@@juraev0056 How is the editor supposed to know the type of a parameter in a function if the type is not explicitly written ?
@timothyhoytbsme
@timothyhoytbsme 10 месяцев назад
What about nested objects?
@cafelutsa_
@cafelutsa_ Год назад
Please stop producing videos with the format of "Stop doing X thing"
@TheSaintsVEVO
@TheSaintsVEVO Год назад
Elaborate
@cafelutsa_
@cafelutsa_ Год назад
@@TheSaintsVEVO Elaborate on what?
@samipplays
@samipplays Год назад
Everybody seems to like it tho
@pepperdayjackpac4521
@pepperdayjackpac4521 Год назад
Why?
@TheCroninberg
@TheCroninberg Год назад
​@@pepperdayjackpac4521as it gets more views/ more people are curious
@darkenblade986
@darkenblade986 Год назад
Actually the most common would be doing front end dev 😂
@unknownguywholovespizza
@unknownguywholovespizza Год назад
Agree 😢😢 especially CSS
@josepheastman8509
@josepheastman8509 4 месяца назад
But isn't index like a main page?
@benji9107
@benji9107 9 месяцев назад
An object... That wasn't too hard
@meudiariodev
@meudiariodev Год назад
What's the name for this? How the folder to put those kind of object factory could be named?
@a7mooz
@a7mooz Год назад
I use lowercase 'object' cuz it's simpler
@Ptaszqq
@Ptaszqq Год назад
I haven't seen anyone typing object Object yet
@gronkhfp
@gronkhfp 6 месяцев назад
Or just create an Interface for your models
@kleinertraitor
@kleinertraitor Год назад
hey kyle, whats the difference between unknown vs any?
@bowiemtl
@bowiemtl Год назад
They are like the exact opposites. Any allows any operation because it could be anything, unknown allows none without narrowing down the type. It’s better to read the documentation and code examples to really get the gist of it
@valcubeto
@valcubeto 5 месяцев назад
Why unknown instead of Any
@mystica-subs
@mystica-subs 4 месяца назад
What do you mean the object works and the date no longer works? I don't see a difference? Where is the actual output of this code?
@bid0u12345
@bid0u12345 7 дней назад
Date is underlined in red = it'll throw a typescript error.
@backgroundnoiselistener3599
@backgroundnoiselistener3599 2 месяца назад
Or simply create a type or interface
@asadulhaqmshani4737
@asadulhaqmshani4737 Месяц назад
Why unknown and not any?
@azeek
@azeek 9 месяцев назад
Cuz in reality you don't want an object you want smth like a dictionary.
@coleykat312
@coleykat312 Год назад
What is the difference between JavaScript and typescript
@asherrfacee
@asherrfacee Год назад
TypeScript is like an enhanced version of JavaScript. It adds optional static typing to catch errors early, improves coding tools, helps maintain clean and documented code, supports modern features before they’re available in all browsers, and boosts code quality.
@HellMuerto
@HellMuerto 3 месяца назад
Same people that makes fun of Java because « bOiLerPlaTe »
@metamike_23
@metamike_23 3 месяца назад
java developers looking at this
Далее
TypeScript Generics are EASY once you know this
22:21
Просмотров 140 тыс.
The Most Important Skill You Never Learned
34:56
Просмотров 214 тыс.
Quinn did NOT expect this one - ESL Dota 2
00:34
Просмотров 193 тыс.
Avaz Oxun - E'lon, erga tegaman!!!
11:47
Просмотров 254 тыс.
as const: the most underrated TypeScript feature
5:38
Просмотров 122 тыс.
React Crash Course | Learn React Quickly | In 80 Minutes
1:17:07
Why Signals Are Better Than React Hooks
16:30
Просмотров 484 тыс.
TypeScript Origins: The Documentary
1:21:36
Просмотров 292 тыс.
I'm Ditching Try/Catch for Good!
10:29
Просмотров 158 тыс.
Learn JSON in 10 Minutes
12:00
Просмотров 3,2 млн
Quinn did NOT expect this one - ESL Dota 2
00:34
Просмотров 193 тыс.