టైప్స్క్రిప్ట్ అనేది మైక్రోసాఫ్ట్ సృష్టించిన జావాస్క్రిప్ట్ యొక్క అనుకూలీకరించిన సంస్కరణ, ఇది స్టాటిక్ టైపింగ్, క్లాసులు, ఎన్యూమరేషన్స్ మరియు ఇంటర్ఫేస్లకు మద్దతునిస్తుంది. పెద్ద జావాస్క్రిప్ట్ ప్రాజెక్ట్ కోసం దీన్ని ఉపయోగించడం వలన మీ కోడ్ను మరింత వ్యవస్థీకృతం చేయవచ్చు మరియు ఇంటిగ్రేట్ చేయడం సులభం అవుతుంది.
టైప్స్క్రిప్ట్ అంటే ఏమిటి?
టైప్స్క్రిప్ట్ కొత్త భాష కాదు. ఇది వాక్యనిర్మాణ జావాస్క్రిప్ట్ సూపర్సెట్: ఏదైనా చెల్లుబాటు అయ్యే JS కోడ్ చెల్లుబాటు అయ్యే టైప్స్క్రిప్ట్ కోడ్. టైప్స్క్రిప్ట్ ఏదైనా బ్రౌజర్లో పనిచేసే సాధారణ జావాస్క్రిప్ట్కు కంపైల్ చేయబడుతుంది. ఇది పూర్తిగా సంకలిత భాష కాబట్టి, అనువాద స్థాయి చాలా సులభం మరియు ఇప్పటికే ఉన్న జావాస్క్రిప్ట్ ప్రాజెక్ట్లో స్వీకరించడం సులభం.
టైప్స్క్రిప్ట్ జోడించే ప్రధాన విషయం, స్టాటిక్ టైపింగ్. జావాస్క్రిప్ట్ అంతర్గతంగా ఉంది డైనమిక్గా టైప్ చేయబడింది. ఏదైనా వేరియబుల్ లేదా ఆబ్జెక్ట్ రన్ టైమ్లో దాని రకాన్ని తిరిగి కేటాయించవచ్చని దీని అర్థం. ఇది JS ను చాలా సరళంగా మరియు ఉపయోగించడానికి సులభతరం చేస్తుంది, కానీ దురదృష్టవశాత్తు ఇది ఒక పెద్ద ప్రాజెక్ట్లో పనిచేసేటప్పుడు గందరగోళంగా ఉంటుంది.
స్టాటిక్ టైపింగ్ తో, మీరు ఏ పారామితులు ఫంక్షన్లను మరియు వస్తువులను అంగీకరిస్తారో నిర్వచించవలసి వస్తుంది, కాబట్టి మీకు స్ట్రింగ్ ఆర్గ్యుమెంట్ను అంగీకరించే ఫంక్షన్ ఉంటే, మీరు దానిని ఒక సంఖ్యను పాస్ చేయలేరు మరియు మీరు ప్రయత్నిస్తే, కంపైలర్ లోపం విసిరివేస్తుంది.
ఉదాహరణకు, ఈ ప్రాథమిక ఫంక్షన్కు a అవసరం message
రకం కేటాయించిన పరామితి string
తో x: type
సింటాక్స్. ఇది జావాస్క్రిప్ట్ ఆదిమ, కానీ మీరు మీ స్వంత రకాలు మరియు నిర్మాణాలను కూడా నిర్వచించవచ్చు. అదే ఫంక్షన్ స్ట్రింగ్ విలువను కూడా అందిస్తుంది. మేము ఈ ఫంక్షన్ను తరువాత కోడ్లో ఉపయోగించినప్పుడు, మేము దానిపై కదిలించి, ఫంక్షన్ ఏ రకాలను తీసుకుంటుందో మరియు ఏది తిరిగి వస్తుందో చూడవచ్చు.
ఇది అనవసరమైన అదనపు పనిలా అనిపించినప్పటికీ, ఇది చాలా వ్యవస్థీకృత కోడ్ స్థావరాలకు దారితీస్తుంది మరియు సాధారణంగా ఉత్పాదకతను మెరుగుపరుస్తుంది. స్టాటిక్ టైపింగ్ యొక్క ప్రధాన ప్రయోజనాల్లో ఒకటి ధనిక IDE మద్దతు, రకాలు స్థిరంగా నిర్వచించబడినందున, IDE సాధారణ లోపాలను చాలా తేలికగా తనిఖీ చేస్తుంది.
ఇక్కడ ఒక ఉదాహరణ ఉంది. మేము IDE కోసం VS కోడ్ను ఉపయోగిస్తాము, ఎందుకంటే ఇది మైక్రోసాఫ్ట్ యొక్క అంతర్నిర్మిత టైప్స్క్రిప్ట్ మద్దతుతో వస్తుంది, అయితే టైప్స్క్రిప్ట్ ప్లగిన్లు చాలా టెక్స్ట్ ఎడిటర్లకు అందుబాటులో ఉన్నాయి. ఈ అనువర్తనంలో, మాకు రెండు లక్షణాలను అంగీకరించే మరియు వచనాన్ని అందించే సాధారణ రియాక్ట్ భాగం ఉంది. వనిల్లా JS లో, ఇది ఇలా ఉంటుంది:
టైప్స్క్రిప్ట్తో, మేము పాస్ చేయలేము props
ఒక రకాన్ని కేటాయించకుండా వేరియబుల్, కాబట్టి పై లోపం. మీరు ఈ చెక్ని ఉపయోగించి నిలిపివేయవచ్చు props: any
, ఇది స్పష్టంగా డైనమిక్గా టైప్ చేస్తుంది, కానీ పై రకాన్ని నిర్వచించడం మంచిది:
ఈ ఇంటర్ఫేస్ అవసరం props
రెండు కీలతో వస్తువుగా ఉండండి, రెండూ తీగలకు సెట్ చేయబడతాయి. ఐచ్ఛికంగా, మీరు ఈ రకాన్ని ఆన్లైన్లో నిర్వచించవచ్చు, కాని ప్రాజెక్ట్లో మరెక్కడా సూచన కోసం ఇలాంటి వాటికి పేరు పెట్టడం మంచిది.
మేము ఈ భాగాన్ని అనువర్తనంలో మరెక్కడైనా ఉపయోగిస్తే, కంపైలర్ లోపం విసిరివేస్తుంది Hello
భాగం నిర్వచించిన రెండు లక్షణాలను లేదు HelloProps
. ఇది పెద్ద మరియు సంక్లిష్టమైన భాగం అయితే, మీరు ఒక ఆసరా యొక్క సరైన నిర్వచనాన్ని కోల్పోయి ఉండవచ్చు, పరీక్ష సమయంలో సమస్యల్లో పడ్డారు మరియు చివరకు డీబగ్గింగ్ చేసిన ఒక నిమిషం లేదా రెండు తర్వాత లోపాన్ని గ్రహించవచ్చు. టైప్స్క్రిప్ట్తో, VS కోడ్ మీకు ముందుగానే తెలియజేస్తుంది.
ఇంకా మంచిది, మీరు టైప్ చేస్తున్నప్పుడు, మీరు స్వీయ-పూర్తి కార్యాచరణను పొందుతారు. మీరు వాటిని వ్రాసేటప్పుడు ఏ విషయాలు అవసరమో VS కోడ్ మీకు తెలియజేస్తుంది.
మరియు, మీరు పెద్ద ప్రాజెక్ట్లో (లేదా టైప్స్క్రిప్ట్-ఆధారిత డిపెండెన్సీలతో) పనిచేస్తుంటే, టైప్ నిర్వచనాలను పరిశీలించడం ద్వారా మీరు ఆన్లైన్లో డాక్యుమెంటేషన్ పొందగలరు:
విస్తృతమైన ఆన్లైన్ డాక్యుమెంటేషన్ను మాన్యువల్గా వ్రాయకుండా ఈ రకమైన లక్షణాలు జావాస్క్రిప్ట్ వనిల్లాతో ఉండవు.
మొత్తం మీద, జావాస్క్రిప్ట్ కోడ్ యొక్క స్థావరాలను నిర్వహించాలనుకునే ప్రోగ్రామర్ల బృందాలకు టైప్స్క్రిప్ట్ చాలా ఉపయోగపడుతుంది. జావాస్క్రిప్ట్ నుండి టైప్స్క్రిప్ట్కు మారడం చాలా కష్టం కాదు; మీకు ఇప్పటికే జావాస్క్రిప్ట్ తెలిస్తే దాన్ని తీయడం చాలా సులభం మరియు జావా మరియు సి వేరియంట్ల వంటి ఇతర స్టాటిక్ భాషలతో పనిచేసిన వ్యక్తులకు ఇది మంచిది.
మీరు టైప్స్క్రిప్ట్తో ప్రారంభించాలనుకుంటే, దాన్ని ఎలా కాన్ఫిగర్ చేయాలనే దానిపై మీరు మా గైడ్ను చదవవచ్చు (మరియు ఇప్పటికే ఉన్న జావాస్క్రిప్ట్ కోడ్ బేస్లో దీన్ని ఉపయోగించండి).
ఇతర టైప్స్క్రిప్ట్ లక్షణాలు
టైప్స్క్రిప్ట్ స్టాటిక్ రకాలను జోడించడంతో ఆగదు, ఇది చాలా JS వనిల్లా సింటాక్టిక్ చక్కెరను జోడిస్తుంది. వారి మాన్యువల్ చదవమని మేము మీకు సలహా ఇస్తున్నాము, కాని మేము ఇక్కడ చాలా ఆసక్తికరమైన విషయాలను కూడా చర్చిస్తాము.
ఎన్యూమరేటర్లు లేదా ఎన్యూమరేటర్లు పేరు పెట్టబడిన స్థిరాంకాల సమితిని నిర్వచించడానికి ఒక మార్గం. ఉదాహరణకు, పైకి, క్రిందికి, ఎడమకు లేదా కుడికి. విలువల యొక్క నిర్దిష్ట జాబితాను అనుమతించే అనుకూల రకాన్ని నిర్వచించడానికి మీరు వాటిని ఉపయోగించవచ్చు. మీరు అక్షర ఎనుమ్ ఉపయోగించి సూచించవచ్చు EnumName.constant
:
రకాలుగా ఉపయోగించగల అనుకూల నిర్మాణాలను నిర్వచించడానికి ఇంటర్ఫేస్లు మిమ్మల్ని అనుమతిస్తాయి. ప్రాథమిక ఆదిమ రకాలను కేటాయించడంతో పాటు, మీరు వాటిని ఎక్కువగా ఉపయోగిస్తారు. ఉదాహరణకు, మీకు a ఉండవచ్చు User
వినియోగదారు పేరు, ఇమెయిల్ చిరునామా మరియు ఐడితో ఒక వస్తువును నిర్వచించే ఇంటర్ఫేస్, ఆపై వినియోగదారుల జాబితాను తీసుకునే ఒక ఫంక్షన్ను సృష్టిస్తుంది మరియు డేటాబేస్ నుండి వారి స్నేహితుల కోసం శోధిస్తుంది.
మీరు వాటిని మరింత సాంప్రదాయ ఇంటర్ఫేస్లుగా కూడా ఉపయోగించవచ్చు, వాటిని ఒక తరగతిలో అమలు చేయవచ్చు మరియు ఆ తరగతికి సంబంధించిన ఫీల్డ్లు మరియు పద్ధతులు కోడ్లో అమలు చేయాల్సిన అవసరం ఉంది. ఉదాహరణకు, వినియోగదారు ఇంటర్ఫేస్ అభ్యర్థించవచ్చు getPosts()
అమలు చేయడానికి ఫంక్షన్, ఇది పోస్ట్ వస్తువుల శ్రేణిని అందిస్తుంది. తరగతి గదిలో తరగతి కమ్యూనికేషన్ను ప్రామాణీకరించడానికి ఇది మీకు సహాయపడుతుంది.
ఏ రకాన్ని అయినా అంగీకరించగల ఫంక్షన్ల ద్వారా టైప్ సమాచారాన్ని పాస్ చేయడానికి జెనెరిక్స్ మిమ్మల్ని అనుమతిస్తాయి. జెనెరిక్స్ లేకుండా, మీరు చేయగలిగేది కింది వంటి ఫంక్షన్, ఇది ఏ రకమైన వాదనను అంగీకరిస్తుంది మరియు వేరియబుల్ కలిగి ఉంటుంది any
రకం.
function identity(arg: any): any { return arg; }
ఇది దానికి పంపిన విలువను ఉంచుతుంది, కానీ దానితో అనుబంధించబడిన అన్ని రకాల సమాచారాన్ని కోల్పోతుంది. బదులుగా, మీరు సాధారణంగా టైప్ వేరియబుల్ సెట్ చేయవచ్చు T
, ఇది రకం డేటాను కలిగి ఉంటుంది. ఈ క్రొత్త ఫంక్షన్ మీరు ఏ రకాన్ని దాటినా తిరిగి ఇస్తుంది:
function identity(arg: T): T { return arg; }
మీరు దీన్ని ఉపయోగించవచ్చు identity
మీ కోడ్లో మరియు వాటిని తీగలు మరియు సంఖ్యలు రెండింటిలోనూ పంపండి మరియు టైప్స్క్రిప్ట్ ఫిర్యాదు చేయదు. దానికి పంపిన వాదన ఆధారంగా రకాన్ని స్వయంచాలకంగా సరఫరా చేస్తుంది, కానీ మీరు ఒక రకాన్ని మానవీయంగా సెట్ చేయాలనుకుంటే, మీరు కుండలీకరణాల్లో రకం పేరును పంపడం ద్వారా చేయవచ్చు:
identity()