Advanced Typescript

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
just a second we are live now uh hey everyone welcome back to another episode of tech talks with santosh and today we have a very really special guest anurag uh joining us so we will be talking about typescript and uh uh i reached out to android android after actually i was using one of his github actions not up action but one of the ways open source project which actually displays some nice information nice nice statistics about your github contributions and then i posted it and analog was like okay this uh this is good and then i realized okay the name of this person and the person who has created this matches and i reached out to are you the creator of this one and he was like uh yes i am and i was like okay great so then i uh just invited him to the show and uh uh thanks a lot and vlad for accepting the invitation yep yep so hi everyone we are gonna talk about some advanced react stuff a advanced type skip stuff today so i hope i hope you guys are excited so a little bit about me i am my name is i i'm currently working at working at timeless.com it's such a chennai-based company i am also a student uh currently pursuing my bachelor's degree so going it's everything is going good yeah so let's get started yeah that's that's a great time right so you're already working with with someone and you're still student i mean i remember my college days i was not even aware what to do next and you have already achieved so much you have to you have uh done some amazing stuff at open source and i'm sure you are going to have a bright future so and thanks for thanks a lot for all the open source stuff you are doing and i hope you uh one day actually if if you wish to i'm not sure if that's something which you want to do but if you get to get the chance to actually do open source for full time i mean that would be really great so let's see uh i'm i hope github sponsor program i think can support a lot of indian developers who are doing open source contribution and uh let's hope that it comes in india one day right now it is not enabled in india but that's in queue so let's hope uh it comes and then it will be able to help lot of amazing developers like you so uh thanks thanks thanks a lot again and uh yep so as we are going to talk about typescript so uh android just can just explain us what typescript is so let's talk about history right we all love history so typescript was built to like solve a problem which was that javascript itself doesn't have any type definitions or static types to support its ecosystem right so the problem arise arises with javascript is that when you when your app grows uh larger what happens is that you will you will mostly face some issues with with like external like scaling the project is get gets harder as you as your project goes so typescript try to solve that by adding uh irritable uh static typing uh in javascript natively like you can like in other languages we have uh in and stringed data types and type declarations you can also via typescript you can also do that now what is the benefit of it is that it give first of all it gives you uh you know like great dx developer experience so what happens is that when you write a write object and it uh like type when you define the object object shape with typescript later on you can say that yeah later on if you do a mistake in that object types it can show you that here these keys are missing and these properties are missing from the object right so it helps you grow the grow the project more conveniently and not just that it can also help you find bugs uh early on like you don't have to run the code to catch silly mistakes like it can a typescript can show you the mistakes early on by providing static type checking and it can also basically do a lot of things which we are gonna talk about today so one of the things is that um i never seen in any other like typed programming language that has a so-called like powerful type system like typescript like basically here in types typescript type system is turing complete that means that you can write programming programming like you can do type level programming right so we are going to talk about that and we are also going to see some real world examples here so like first of all uh i thought that uh we are gonna saw some demos uh demos of uh some use cases like uh what i have uh like gathered uh gathered from my experience uh so i i'm gonna show you for the four demos i will live code them so you can understand better on how things work that's great so i mean uh so what i understand from typing is of course uh when i was writing a dot net code and i moved into javascript so i always used to get one mirror so something of undefined not available right so whenever i used to read the object so it is always like you that's that's one of the i think mostly most searched error on the internet when when people used to write the javascript code so something often defined and then you actually go into the code see where it is getting failed and it was really uh really really time consuming the main part is that look right typescript reduces the feedback loop so that you can catch bugs early on and without typescript uh the feedback loop gets bigger and bigger so you spend more time on fixing silly fixing silly bugs yeah so it is it is actually saving a lot of time nowadays uh thanks to typescript actually i chose angular so uh just just to let me tell you that okay since then i actually choose angular because i was transitioning from a dot-net developer to front-end developer and i i just fell in love with typescript i was like okay this is something which is really close to what dot net is and uh no more that undefined error right so yeah my life is i i never used angular in a production app but uh typescript is probably one of also the reason why people think angular's like learning curve is steep right because they also have to learn types which is i think at a larger scale it's a good thing but for a beginner it can be a like hard thing to pick up yeah actually but uh it's it's only gives you advantage right i mean yeah if you see uh the one of the primary reason of actually uh typescript getting popularity was angular because angular actually said okay we are going to use livescript and even no one was aware of what typescript is yeah and now everyone is actually if you go to twitter and that twitter is always praising the typescript yeah actually a lot of developers are now react developers have started using typescript and the thing is i mean angular i think was one of the visionary framework which realized uh the value of what typescript is offering so yeah i'm not taking sites just just to give the no no no i i agree because you know because uh angular is one of the first framework which integrates typescript in their engine right uh and all other uh all other frameworks as you can see mostly migrating now uh like view migrated migrated yeah they actually recently shared a blog post saying that they are not going to move away from flow and flow is not for everyone so if you don't want to use flow that's absolutely fine go ahead and use whatever whatever you want to we will continue using flow so it's it's okay i mean that's that's their own choice but i think uh the credit goes to angular team for actually showing the faith in typescript and that's why it is being adopted by everyone now and uh the kind of developer experience you get while actually writing types of code that is amazing right cool so let's move on to the demos i think you said you have some demo so uh should we move on to the nemo part yep let me share my screen yeah yeah yeah i'm already here so i have prepared few demos here so first demo is basic uh not basic like uh mostly intermediate demos so uh i am gonna show you uh like real world examples of how to use these types and how how you can uh like take advantage of it so here we have a accordion let's say you have a accordion here like use accordion state which can be used in like in react right so let's say you want you want uh you want to make sure that in in here you get a hello multiple two right and we have the interfaces already uh already detailed here and ids that's a selected ibis these are the selected ids and it's a one and two and one right so what we what we want that uh we don't want a person to then add id here because id will be uh isn't compatible with this interface right so let's let's do this first right so this is very easy this is basic stuff now we are gonna say we are gonna define a type which which will uh use accordion single or accordion drops multiple right ah just can you just let uh zoom in little bit because i think some people are not able to see it yeah that's that's perfectly fine yeah yeah is it fine yeah yeah now it's it's okay i think i mean let me let us know in case so so what it will do is if you just use this right it immediately shows that id is uh not compatible with this interface because we are so we are allowing multiple here but uh id isn't uh isn't like supported here so if you say like multiple is false then id is uh invalid here right and we can say id this is this is valid this a this is called not discriminated union but union type so either this uh this this object or this object can be really valid not both right so these two this and this right so let's say what we can do is here so we handle the props right it's working as respect expected but here's the problem we are saying hello multiple falls here and id2 here but the return type as you can see is also union right because we are we are checking the yellow multiple here if it's true we are returning some like a random strings here right so we what we want is that we only want uh here we are saying multiple is called false uh we want here to return yes like matching matching type right so we are gonna achieve this by uh first two methods one we will use overloads then i'm gonna show you the same it will work as same but uh [Music] you can define the same function multiple times with different interfaces right so what in in uh type languages this this concept is very popular right so we can do export function use accordion state again right and crops gonna be this is we're gonna redefining it record here accordion drop single right and the return type would be accordion return single return right this one hello multiple is single and returns is just a string but so we define one yeah one uh like overload let's see what it like like it gives gives us the correct uh return type which is accordion single return because we have this overload now let's say let's uh change it to i uh multiple accounts um now we define both of those now the error is gone and we have accordion multi written working as expected right so this is the whole list of like overloads uh you can define multiple uh multiple uh declarations of a function and get uh narrow the type uh based on based on the props and return statements so that is it so this is one way if you have if anyone have any question regarding this i think we are good to go right now but there is no question okay okay so this is uh this is overloads function now we are gonna check conditional we are gonna do the same thing but foundational types right so let's define the conditional stuff let's call it person who now uh one thing to notice that in here it will also give you the appropriate suggestions right in the v1 if you do the so we are gonna define this function again let's copy this we are gonna keep the props right now like this but we are gonna change it so let's do this what we're gonna take is a generic we'll make it a generic pro let's call it let's [Music] we made it a generic uh generic function so what what it will do is it will it will uh it will get the like types from here and it will pass it to the pubs here so we made it generic right so let's say now what we are gonna do is let me just value let's call it value i'm gonna explain after writing this um i'm gonna explain it after writing it so we have this utility function now props this has so let me just uh see if it works ppr made it wrong not me has to be the whole thing [Music] um is something is wrong here let me check this is what you as expected so d extends we are saying p extends according to hp extends [Music] um yep um probably uh we need to use value as a type i mean we are already doing that right so yeah let's check it here i am missing something silly here ah looks like yeah i'm missing something here this is the this is the beauty of life coding right let me just do this like this uh accordion because accordion props is union of both that's that may be a reason yeah what accordion no this is fine because what i am trying to do is check for the extent there so if we extend a single prop right so i'm gonna return written accordion data [Music] yeah right this is fine this looks fine to me so now we have again i i missed something in here txt value right let me just copy value so i don't miss anything yeah it works i don't know why let me check why this yeah looks fine to me am i doing something wrong one thing which you have is t extends props and then you have props of t so that's the only philly difference which i can see right so apart from that and everything is same yeah let me do this yeah this works is there a issue with oh my god why is it not working with cops probably props is already something which is almost it worked oh okay okay we got it we got it guys so let me just go over to how it all works because that was confusing probably for you guys and for me to not gonna lie so what we have here is a conditional type like this this works as a this works as a statement so if the if the type which is passed here extends the single prop type is extend this interface which is this so we are going to return the single written accordion types otherwise we are going to return the multiple so this is basically what it does is type if it is let's say boolean right so t extends to then true and let's say this is what basically this is just a statement inside a typescript type system yes true see it's gonna say yeah or if you say false it's gonna say [Music] right this is just a if statement in typescript type system uh so basically we are doing the same here we are extending this is exchange means this is like a three equal equality design we extend it is called a relationship uh t extends accordion prop single then we're gonna return the single or return the multiple this is basically narrowing down uh the detail statement here right we are doing this we don't actually need the unknown id yeah we don't need that yeah it should work yeah yeah so basically that's it conditional types and overloads both of them are working as expected apart from that apart from that apocalypse what happened so yeah yes okay so uh uh just to just to uh ask this right so we have this both the ways to actually achieve almost similar functionality so which one you suggest i mean whether you should go for conditional types or we should just create overboards if there is uh more than like three cases i will go for bulldogs okay or if there is only two cases like it's based on based on the use cases right it doesn't matter what you choose both both would work you know work and it's up to you like what you like like i mean like it looks the overload looks simple but if you have if you have like 10 of them and then it will gonna be a messy messy thing and you have to upgrade this and maintain this but with a conditional type you can add a more conditional shade and you have to only maintain one one value type right so there are some like trade-offs here and there but both of them should work most of the cases yep so accordion is finished anyone have a question she has this question is the written type of on the function declaration is enough e what from some declaration [Music] which function declaration is talking you're talking about region so if you are like maybe maybe maybe he's talking about the overload so yeah for the declaration you don't have to you just have to declare the overloads yeah i mean so that's so that's how it is overload is yeah yeah thank right so anything else uh no i think we can move it okay okay so this was a bit messy so i am staying here quite a bit i hope this was clear even though it was getting messy so let's go to next so here we have another example so we have a we have a like i'll talk about this use case later let's just implement this right this is a bit more advanced and this this we are going to use template literal types which was introduced in typescript 4.1 it's it's a really cool thing and we're going to do something cool with it so we all know the like um as well as this will split uh the string in two halves but problem is that you don't the typescript definition of this is just a string right string of string of area right so we want to we want to split this two right so how we are gonna do this in type level let's see so i'm gonna just start with executing this first demo split let's say now let's do something technically [Music] [Music] because it's just returning the text we want here is vg red 500 and text psn right we want this to be redundant so let's do this we are going to extend this function by minuting any constant stream string and extends this will is the separator will exchange a string and we are going to call that in history now let's just rename this so that we better understand this call it string and let's call it separator right we are gonna we have this whole thing it works as same nothing is changed let's now implement this now if we are gonna say if string extends string extends in for i'm gonna like explain this this is gonna be i'm gonna explain this after writing it will extend okay so we are gonna split we are gonna check if the string is uh can be splitted by the separator and we are gonna insert the part one and part two of it so let's see what it tells us uh let's just return the part one part two and otherwise let's uh return it came in here okay so let's see like it gives us the correct answer like which is which is which is an array so let me just let me just uh like explain what this line is doing so we are saying infer part one and then we are interpolating the separator and then we are saying infer part two so what is inferred keyword does is that it says that hey com compiler give me the type which which will be here on when you execute right it basically we are saying that hey typescript just give us the give us whatever in here and set it to a variable called part one and whatever in here set it to part two then we can access this uh variables later on uh on here right so this is this info keyword is like a very powerful uh powerful concept in that script which basically you can like in in when the typescript compiler type checks these types it can provide this information and we can use it so so this works right but uh there's a problem here this doesn't work which we do like hello world this doesn't work right this doesn't work it just uh splits the it don't splits the edit text sm right so we are gonna use recursive types here right what are recursive types so recursive uh types are introduced also in 4.1 typescript 4.1 which basically you can like recursively uh recursively build the type and return the return the statement what typescript has right so let's see how it works we are going to say like spread the split again okay with the part two and the separator all right we are just spreading the split why you are spreading this bit because the split returns adding we are we are spreading the array for this or in typescript the tuple type uh we are spreading this and we are passing the split again with me for type 2 part 2 right so basically it will insert this part into here in this split and we are also separating the passing the separator so let's see what it gives us right it works vg red 500 and it gives us three uh three uh elements with insider added right so it works as expected so now let's talk about uh like if anyone have any question let's see first i think there is no question but uh just just to ask where is the world gone i mean we have a text sm hello and then we don't have word so uh any specific reason skipped so the last last character last so [Music] [Music] hmm this type here right we can fix this by let's say we can check this first which extends let's say um infer [Music] so in part if it's is separated but nothing else then we are gonna just return the part one yeah it should work yes part one because it looks like it is returning everything in part one because so we can basically do it yeah let us do this on the second pass right okay [Music] from my side i guess so what happened uh is that um the hello oh no it doesn't work there's no separator right so if you see world i mean there is no separator afterwards so that's why just keeping it yeah i got that but uh it should be like in here yeah i'm doing this yeah this works so we have to we have to check the check if uh check for dangling strings right yeah if a string is dangling or not so the iso here it was that because there wasn't a separator here this check failed mistake failed so it directly returns the empty string empty array and hello world wasn't included in here so so what we do is we check for the dangling string and we return the dangling string as is right nothing changed so this works any questions so uh i uh if i'm not wrong this is also something known as very very dictable so if i'm not wrong or a very dictables or something else this is very good this is very dictables but uh they have uh it's basically very with just strings but i don't know if you can call like in definition couples are mixed mixed types right so this is just a string of tuples [Music] so let's let's check something else the separator is working yes let's say we are going to separate by uh [Music] what it does is it's it's infinitely recursing the difference in the speaker so so it couldn't be able to recurse that with the empty string yeah i'm gonna show you the use case for it too let me just check if i forgot something uh while demoing it in the final because i think i uh i missed this no this works uh i missed something so we don't have to do this i got nervous and did this wrong so what i did is i forgot to put the last dangling string on the implant now it was given me the high this works so let me reiterate that so what went wrong here that we forgot to return the dangling string from here so this was the issue and it fits now so let's say this this shows that uh type level programming can be a little confusing right with uh basically with all the conditional statements so you can like do mistakes like this uh which can be solved uh pretty easily but you overthink something and it goes like that so that's it let me just quickly show the use case for it right so let's say you have a use tooltip like so we have the theme here which basically maps top bottom left right to some tailwind classes right and one tools like access team like him top left bottom right but you don't have you can't do it this uh with just a naked split uh it will throw an air type scripture i you can get around the text meter but if you if you want to be more explicit what you can do is split the text by uh dash in network javascript and then use the utility function right we are splitting by uh the dash here and we are giving the placement what is placement placement is top left bottom left top right bottom right right this is gonna split by the dash and we get align top bottom side left right right we we got with this structure in this and that's it we are getting the mobile mobile styles by accessing theme.site right [Music] but like in here we are going we can also do styles theme align because both have a top bottom left right so this is one use case which uh i stumble upon while building a component library at what so this is a pretty good use case i think yep so this demo is finished any questions i don't think so i mean there's no question it's it's a pretty pretty good use case yeah it's nice uh but don't overuse this utility types it can it can be an issue uh later on uh like uh if you have a string if you have a function which takes a string uh it won't uh it will it can throw errors sometimes uh when you are using uh strict uh type chicken so let's take the join so we do we have the time yes we have a lot of time yeah sure both of the demos like half failed i would say it's absolutely fine we are learning something new yeah yeah yeah actually um i got i know something good bad happens so i added this final uh you are actually doing better than me i never have anything ready and so i just start writing the code and then get stuck and then yeah i thought i thought it would be better to have something ready here yeah yeah let's get to this so you have used uh like probably you have used a library in react called class names right it joins multiple class names like this and returns a string but we want to join this we have to join this by space let's play it in split we did uh split displayed by a space and in join you want to join by space right okay so let's do this i'm gonna i'm not gonna like if this face i'm gonna cry now so what we have to do first it accepts a string string of arrows right because uh let me just give you an insight over this so t extend string of array here and we are passing that generate two classes with spread operator spread operator means it can accept arbitrary arguments right and number of values yeah yeah yeah so it will be an array of strings we have we are basically passing that t to the joint stream function right and the separator separator will extend string right so let's do this so what we want to do so we want to script this and bg red 500 want to join this next sm we want to get vg red 500 text listen right first we will let me just add a demo here let's just first do this first we will check for an md if it's an empty area we are gonna just return we the string right if a str extends at a just an empty array then we are going to return a string otherwise we are going to lets lets just return htr for now see we are getting this in the string because the array is empty now we are going to check if array has only one element it will fail because str extends area which contains the string and [Music] right uh it returns the text station here let me add another one like this because it doesn't this also works right so but but problem is that it doesn't joining the string right it's just returning an area we have to join this now so we are going to say extreme extents this then let's do this because we already handling the single string here here just once history or so basically this check is saying if array is added more than one element okay this is basically checking this if it does we are gonna return uh so first we are gonna return the first element like because we are already handling we are not inferring it we are just gonna put [Music] the separator and then we are gonna use use like uh we are gonna use the recursive type again on [Music] what it says is rest does not satisfy the constant string uh like area of string type unknown doesn't constraint what happening is that inferred when you do infer it doesn't know what the type of the list is so it just says it's right yeah so what we have to do we have to take both string or unknown now the error is gone and everything works uh you know we are joining by the space right it works all right so this should also work yeah the class name now returns the joined string let me go over through one more time so what we are doing here is first checking for one element if array is empty then we are going to return a empty string with array extend one element then we are gonna return the return only the one element as a string right right is the array is rb at a point is more than one element which is says that it contains one string element and we are gonna infer all the rest of the elements in the test uh variable so it will contain all the elements if and if and then it comes if it contains like if the array is context more than one element we are gonna uh interpolate that to an uh string which looks like uh which is joined by a separator and we are gonna condition we are gonna recursively uh like join all of the wrist elements by the separator so rest here so list basically here will be uh in this case text sm and hello this is gonna be the rest and this will be passed to join str and the separator will be passed also so this will return again a string again a string and we will have the whole this whole string build so that's it uh any questions i don't think so uh we can move ahead to the next so so this demo is the only one which got like smoothly and in fact it was the complex one i guess because it was the largest uh split season was also easy but i think the most complex one worked so yeah the important thing is we are we are actually learning about how strong the type system is right so we are almost writing our entire entire logic just using types so if you see there are there are no code no functions i mean just types and we are able to achieve so much yeah and note that if these types won't be bundled in your client application types don't have run time right right only on the compile time so this is very powerful i think i never seen any other programming language with this language has this kind of powerful uh type system right like this this kind of interpolated uh template literal types are like crazy crazy powerful so and also very uh useful so sweden has this question can we pass false false values as well i think it will fail right i mean if i pass something else apart from string let's check it will fail yeah let's check but uh i'm not sure because it says i think never would be better but for the use cases here i gone for uh string now uh srijan has the idea to like pass false and true like we can also uh implement those in here like we can check if uh array contains false or through values and profits if it does we can return string false and string right this can be done it's your homework season so do this do do this and share it on twitter i guess so that's it i think for the demos i am [Music] i almost forgot this yeah so this is i think the most yeah this is i think most practical use case i would say uh off of the type system so let's say you have this result this this example is actually taken from type challenges challenges repo which is an amazing amazing resource to learn typescript and like you can take uh challenges typescript challenges here i will share the link later on so let's see what it says uh what we have to do is return we have to make sure that result. like when we access the properties we get like loves typescript name age 20. we want to build the object via this api right let's do this how can we do this so we have this string here we are getting key and we are getting value right this is this is very interesting here so we are gonna take an object here which we are gonna just assign to an empty object so we don't have to pass it here so we are gonna use this object as a placeholder or a variable to gather all these types one by one right and what we are gonna do is change this option type with generic so let's call it key exchange string it takes an x string and value extends unknown it can be anything value can be anything we are going to pass the key here and value here let's see what it gives us that it it's interpolated these values it passing those values correctly but we are still giving any written here so gate is basically the like like the build if you have ever done like um design pattern for builder pattern builder design pattern you know this uh pretty well so this is basically the build so we are gonna build we are gonna write an object object which we uh which we are holding here it returns basically it returns any because options are currently returning so what we are going to do we are also going to returning return to obg but no this is what actually happens in uh in when you want to change multiple methods right you have to return the instance all given by this function right what we can do is intersect this uh object um sorry this is optional right we don't have to pass it but in here we are going to pass this we are going to pass the object and we are going to pass the current object last interval we are going to like make the object uh ourselves so we are not passing the value and key will be in key so what this basically does is it's it's like a for loop of uh typescript it's interpolating like it's iterating over the keys and passing the values in here we only have one key so it will be one object uh object with one key and one value here right so we are going to passing this to a channel functional uh instance now this works right result has the name has the age as the labs so let's check it result dot this works as expected which returns all the things uh right right this is all the like this is i would say like very useful in terms when you want to build an api like this so i think it's a pretty good use case any questions i think there is no questions as of now but yes so we can move yeah this was the last uh demo i think i don't have any demos anymore yeah so so many amazing stuff so thanks a lot for actually giving all this uh showing all these demos uh learn something new yeah so like uh one more thing if you wanna i'm gonna show you some one step how can you get this to one step further right explain this this is my typescript experiments yeah this this is a type safety api which i wrote basically let's say you have this uh three api uh for a folder tree and you want to make it uh recursive and it should also work like this my tree dot see it's all giving you the all the bodies of typescript like folders you can go to folders you can go to contents it also shows the contents so i think you can extend the extra chainable api like this with very powerful apis like three apis so pretty nice i think yeah that's it that's nice so uh yeah so uh any any uh what are the resources you will suggest to someone who is new to typescript and want to learn more about type success so resources is pretty great i think you can if you are if you are like going over you should go over this repositories like they have all the utility like cheat types here how it works and how you can you can do this uh so like cheat sheet for react how you can integrate more advanced uh type scripts uh concept into the act so i think you already know this but you should you should follow this there's also another chipset this this is also good this this shows uh some of the more uh like basic stuff um how we can do the interface manipulation and yeah this is the type challenges which i was talking about like if you can if you can if you can like uh do the medium challenges here um consider yourself a typescript expert like like hot ones like are very hard actually extreme ones i never even tried extreme ones uh but yeah if you get the medium ones here i think you can learn more here are the channels which i got here there are also lots of uh type lookup permutations length of string flattened and these are very uh and you can also get like all the like answers here they all have answers for everything so take the challenges here and most importantly like read the handbook like livestream fanbook this is like full of information about how you can do things and how you can integrate some things in like type narrowing object types type manipulation this is a lot of stuff you can learn if you can read the docs properly so that's it i think these are the resources you can get yeah that's great thanks thanks for sharing those i mean i i got two links uh there was one more can you share can you just share it in a chat i will just i think second one and i will just add it in description so everyone knows yeah i mean later on so yeah that's that's uh that's it anything else you want to share i have nothing to say but um i would say that if you are starting with typescript go slow there are i i'll give you a few tips for types with like if you're learning new here this i know this this season was very advanced type scripts and stuff probably if a beginner saw this they will run away but uh here are a few tips i would like to give so if you are starting out with uh like typescript uh don't uh don't like set the street it will on every step instead of any use tear signal [Music] right ear signal is the go to you should uh like look for if you are approaching for any no let me just do this if you are for approaching any first try to approach unknown then if it does it doesn't work go to be a signal yes this is the rule you should follow when you are stuck in a typescript issue like which you don't know right by doing unknown or tier signal you can come back and fix those later on but if you are using any uh any it won't uh gonna first of all you it it's not discoverable with a signal you can you can just discover all the pa signal by doing a search here right so this is a good tip i think uh to go with kia signal or unknown uh if you are stuck with typescript so and and don't force yourself just the typescript is uh it's gonna click sometimes and it's gonna make you cry sometimes so that's it good so uh anything you want to promote and run on the channel so yeah i don't really like i don't want to promote anything other than my twitter handle like follow me i am stuck on 1.8 followers definitely helping me reach 10k as well so i can just [Music] he has been sharing some amazing stuff and uh so and in case someone has question where they can reach out you can reach out to my dms or yeah i think dms will be the go to place you can reach out or you can also go reach out to my twitter like email aml issues you can open an issue here there are a lot of already like your questions here so you can open an issue or dm me here so kjs is already following you looks like so uh he's the amazing guy so uh we we know each other from twitter but never met unfortunately uh just because of this uh coronating but yeah one day we would love to meet him as well yeah i i also like never met anyone in the community in person i'm an introvert person so it's hard for me i mean i i was the same so but now i speak a lot yeah you will you will learn so i'm sure you will learn that yeah yeah i'm actually doing all this livestream just because to make myself more comfortable with popular public speaking right because i'm not very good at it i know you did really well uh i'm looking forward to have like three more talks from your side so and probably we can actually come again and probably uh let's do like pair programming one day i would love to have you because i'm doing already doing this live streams on angular and uh i think uh we can just join yeah i think i think what we can do is you can teach me angular like uh and you can type yeah right that would be good deal deal yeah sure so uh yes that's that's it from uh uh from today i hope you learned something new because i did and uh i'm going to explore typescript in more detail i'm not an expert i'm not an expert i'm i just use typescript as uh as much as i need but not everything so uh apart from that so on closing notes next week we are going to talk about kit of actions not github actually we will talk about data actions but we are going to explore some amazing github actions which is created by community so one of the github star who's going to join us he's from india so nishkish is his name and he'll be giving some demos on the github actions which are created by community so in case you are interested to explore those kit of actions please join us next friday it will be on 10 pm isd or today we had a banana early but next next friday it will be 10 at 10 pmist so looking forward to actually have you on the next session as uh next episode as well and that's it for the day see you and bye bye and thanks again for joining bye everyone bye
Info
Channel: Tech Talks With Santosh
Views: 658
Rating: undefined out of 5
Keywords:
Id: aKKbxfaCp5o
Channel Id: undefined
Length: 72min 33sec (4353 seconds)
Published: Fri Jun 04 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.