TypeScript గెలిచింది. దాని వల్ల మనకు ఏమి లభించింది.

చర్చ ముగిసింది. TypeScript గెలిచింది. కొత్త ప్రాజెక్ట్‌లు డిఫాల్ట్‌గా దీనినే ఉపయోగిస్తున్నాయి.

కోడ్ పాడవ్వకముందే టైపోలను (typos) పట్టుకోవడమే దీని అసలు ఉద్దేశ్యం. కానీ దీని నిజమైన విలువ అంతకంటే చాలా ఎక్కువ.

టైప్స్ (Types) ఎప్పటికీ పాతబడని డాక్యుమెంటేషన్‌లా పనిచేస్తాయి. ఒక ఫంక్షన్ సిగ్నేచర్ (function signature) మీరు ఏమి పంపాలి మరియు మీకు ఏమి తిరిగి వస్తుంది అనే విషయాన్ని ఖచ్చితంగా చెబుతుంది. మీరు ఒక జాబితాకు కొత్త ఆప్షన్‌ను జోడిస్తే, కంపైలర్ మీ కోడ్‌లోని ప్రతి భాగాన్ని అప్‌డేట్ చేయమని మిమ్మల్ని ఆదేశిస్తుంది. ఒక కామెంట్ (comment) మాత్రం అక్కడే ఉండి మిమ్మల్ని తప్పుదారి పట్టించవచ్చు.

రిఫ్యాక్టరింగ్ (Refactoring) సురక్షితంగా మారుతుంది. పాత JavaScript కోడ్‌లో, ఒక ఫీల్డ్‌ను రీనేమ్ చేయడం అనేది ఒక జూదంలా అనిపిస్తుంది. మీరు స్ట్రింగ్స్ కోసం వెతికి, అంతా బాగుంటుందని ఆశిస్తారు. TypeScriptలో, మీరు టైప్‌ను మారిస్తే చాలు, దెబ్బతిన్న ప్రతి లైన్ యొక్క టు-డూ (to-do) లిస్ట్‌ను కంపైలర్ మీకు అందిస్తుంది. రిఫ్యాక్టరింగ్ ఇక భయంకరమైనది కాదు. అది కేవలం ఒక పని మాత్రమే.

టైప్స్ AI అసిస్టెంట్‌లను కూడా మెరుగుపరుస్తాయి.

మీరు ఒక AIని టైప్ చేయని (untyped) JavaScriptని ఎడిట్ చేయమని అడిగితే, అది స్ట్రక్చర్‌ను ఊహించాల్సి ఉంటుంది. మీరు TypeScript ఉపయోగిస్తే, టైప్ అనేది ఒక స్పెసిఫికేషన్ (specification) లాగా పనిచేస్తుంది. ఏది అనుమతించబడుతుందో AIకి తెలుస్తుంది. ఒకవేళ AI తప్పు చేస్తే, కంపైలర్ దానిని వెంటనే పట్టుకుంటుంది. దీనివల్ల తెల్లవారుజామున 2 గంటలకు ప్రొడక్షన్ క్రాష్ (production crash) అయ్యే ప్రమాదం ఉండదు. మీ ఎడిటర్‌లో ఒక ఎరుపు రంగు లైన్ కనిపిస్తుంది.

టైప్స్ మీ వేగాన్ని తగ్గించవు. AI ప్రపంచంలో, అవి మీ వేగాన్ని పెంచుతాయి. అవి గార్డ్‌రైల్స్ (guardrails) లాగా పనిచేస్తాయి, తద్వారా మీరు జనరేట్ చేయబడిన కోడ్‌ను నమ్మవచ్చు.

మీ టైప్స్‌ను ఉద్దేశపూర్వకంగా రాయండి:

• బహుళ బూలియన్లకు (booleans) బదులుగా యూనియన్లను (unions) ఉపయోగించండి. ఒకదానికొకటి విరుద్ధంగా ఉండే మూడు ఫ్లాగ్‌ల కంటే "loading" | "error" | "ready" వంటి స్టేటస్ మెరుగైనది. • మీ డొమైన్ టైప్స్‌కు పేర్లు పెట్టండి. మీ ఉద్దేశాన్ని తెలియజేయడానికి "type Cents = number" ఉపయోగించండి. • "any" ని నివారించండి. దానికి బదులుగా "unknown" ఉపయోగించి దానిని నారో (narrow) చేయండి. "any" అనేది మీ సేఫ్టీ నెట్‌లో ఒక రంధ్రంలా పనిచేస్తుంది. • ఇన్‌ఫరెన్స్ (inference) పని చేయనివ్వండి. మీరు ప్రతిదానికీ లేబుల్స్ వేయాల్సిన అవసరం లేదు. ఫంక్షన్ సిగ్నేచర్‌ల వంటి మీ బౌండరీలకు మాత్రమే లేబుల్స్ వేయండి, మిగిలినవి దానంతట అవే సాగుతాయి.

TypeScript కేవలం టైపోలను పట్టుకోవడమే కాకుండా, బలమైన ఒప్పందాలను (enforced contracts) సృష్టించింది. ఈ ఒప్పందాలు భయం లేని రిఫ్యాక్టరింగ్ మరియు నమ్మదగిన AI సాధనాలకు వీలు కల్పిస్తాయి.

బగ్స్‌ను ఆపడానికి మేము టైప్స్‌ను ఉపయోగించడం ప్రారంభించాము. అవి మిగిలినవన్నీ నిర్మించడానికి పునాది కాబట్టి మేము వాటిని నిరంతరం ఉపయోగిస్తున్నాము.

Source: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-12m8