TypeScript വിജയിച്ചു. അത് നമുക്ക് നൽകിയ നേട്ടങ്ങൾ ഇവയാണ്.
തർക്കങ്ങൾ അവസാനിച്ചു. TypeScript വിജയിച്ചു. പുതിയ പ്രോജക്റ്റുകളിൽ ഇത് ഡിഫോൾട്ട് ആയി ഉപയോഗിക്കുന്നു.
കോഡ് തകരുന്നതിന് മുമ്പ് ടൈപ്പിംഗ് പിശകുകൾ (typos) കണ്ടെത്തുക എന്നതായിരുന്നു ഇതിന്റെ ആദ്യകാല ലക്ഷ്യം. എന്നാൽ ഇതിന്റെ യഥാർത്ഥ മൂല്യം അതിനേക്കാൾ എത്രയോ വലുതാണ്.
ഒരിക്കലും കാലഹരണപ്പെടാത്ത ഒരു ഡോക്യുമെന്റേഷൻ ആയി ടൈപ്പുകൾ (Types) പ്രവർത്തിക്കുന്നു. ഒരു ഫങ്ക്ഷൻ സിഗ്നേച്ചർ (function signature) നിങ്ങൾക്ക് കൃത്യമായി പറഞ്ഞുതരും എന്താണ് അയക്കേണ്ടതെന്നും എന്താണ് തിരികെ ലഭിക്കുക എന്നും. ഒരു ലിസ്റ്റിലേക്ക് നിങ്ങൾ പുതിയൊരു ഓപ്ഷൻ ചേർക്കുകയാണെങ്കിൽ, കോഡിന്റെ എല്ലാ ഭാഗങ്ങളും അപ്ഡേറ്റ് ചെയ്യാൻ കംപൈലർ നിങ്ങളെ നിർബന്ധിക്കുന്നു. എന്നാൽ ഒരു കമന്റ് (comment) അവിടെത്തന്നെ ഇരിക്കുകയും തെറ്റായ വിവരങ്ങൾ നൽകുകയും ചെയ്തേക്കാം.
റീഫാക്റ്ററിംഗ് (Refactoring) സുരക്ഷിതമാകുന്നു. പഴയ JavaScript കോഡുകളിൽ, ഒരു ഫീൽഡിന്റെ പേര് മാറ്റുന്നത് ഒരു ചൂതാട്ടം പോലെയാണ്. നിങ്ങൾ സ്ട്രിംഗുകൾ (strings) തിരയുകയും നല്ലത് സംഭവിക്കട്ടെ എന്ന് പ്രാർത്ഥിക്കുകയും ചെയ്യുന്നു. എന്നാൽ TypeScript-ൽ, നിങ്ങൾ ടൈപ്പ് മാറ്റിയാൽ, തകരാറിലായ ഓരോ വരിയുടെയും ഒരു 'ടു-ഡൂ ലിസ്റ്റ്' കംപൈലർ നിങ്ങൾക്ക് നൽകുന്നു. റീഫാക്റ്ററിംഗ് ഇനി പേടിപ്പെടുത്തുന്ന ഒന്നല്ല; അതൊരു വെറും ജോലിയായി മാറുന്നു.
ടൈപ്പുകൾ AI അസിസ്റ്റന്റുകളെ കൂടുതൽ മികച്ചതാക്കുന്നു.
ടൈപ്പ് ചെയ്യാത്ത JavaScript എഡിറ്റ് ചെയ്യാൻ നിങ്ങൾ ഒരു AI-യോട് ആവശ്യപ്പെട്ടാൽ, അതിന് അതിന്റെ ഘടന ഊഹിക്കേണ്ടി വരും. എന്നാൽ നിങ്ങൾ TypeScript ഉപയോഗിക്കുകയാണെങ്കിൽ, ടൈപ്പ് എന്നത് ഒരു സ്പെസിഫിക്കേഷൻ (specification) ആണ്. എന്താണ് അനുവദനീയമെന്ന് AI-ക്ക് കൃത്യമായി അറിയാം. AI ഒരു തെറ്റ് ചെയ്താൽ, കംപൈലർ അത് ഉടൻ തന്നെ കണ്ടെത്തും. പുലർച്ചെ 2 മണിക്ക് പ്രൊഡക്ഷൻ ക്രാഷ് (production crash) സംഭവിക്കുന്നതിന് പകരം, നിങ്ങളുടെ എഡിറ്ററിൽ ഒരു ചുവന്ന വര (red line) കാണാൻ സാധിക്കും.
ടൈപ്പുകൾ നിങ്ങളുടെ വേഗത കുറയ്ക്കുന്നില്ല. AI ലോകത്ത്, അവ നിങ്ങളുടെ വേഗത വർദ്ധിപ്പിക്കുന്നു. ജനറേറ്റ് ചെയ്ത കോഡുകളെ നിങ്ങൾക്ക് വിശ്വസിക്കാൻ കഴിയുന്ന രീതിയിൽ അവ ഗാർഡ്റെയിലുകളായി (guardrails) പ്രവർത്തിക്കുന്നു.
കൃത്യമായ ഉദ്ദേശ്യത്തോടെ നിങ്ങളുടെ ടൈപ്പുകൾ എഴുതുക:
• ഒന്നിലധികം ബൂളിയനുകൾക്ക് (booleans) പകരം യൂണിയനുകൾ (unions) ഉപയോഗിക്കുക. പരസ്പരം വിരുദ്ധമാകാൻ സാധ്യതയുള്ള മൂന്ന് ഫ്ലാഗുകൾക്ക് (flags) പകരം "loading" | "error" | "ready" പോലുള്ള ഒരു സ്റ്റാറ്റസ് ഉപയോഗിക്കുന്നത് കൂടുതൽ നല്ലതാണ്.
• നിങ്ങളുടെ ഡൊമെയ്ൻ ടൈപ്പുകൾക്ക് (domain types) പേര് നൽകുക. നിങ്ങളുടെ ഉദ്ദേശ്യം വ്യക്തമാക്കാൻ type Cents = number ഉപയോഗിക്കുക.
• "any" ഒഴിവാക്കുക. പകരം "unknown" ഉപയോഗിക്കുകയും അതിനെ നിയന്ത്രിക്കുകയും (narrow it down) ചെയ്യുക. "any" നിങ്ങളുടെ സുരക്ഷാ വലയത്തിൽ ഒരു വിള്ളൽ ഉണ്ടാക്കുന്നു.
• ഇൻഫറൻസ് (inference) പ്രവർത്തിക്കാൻ അനുവദിക്കുക. എല്ലാത്തിനും ലേബൽ നൽകേണ്ടതില്ല. ഫങ്ക്ഷൻ സിഗ്നേച്ചറുകൾ പോലുള്ള നിങ്ങളുടെ അതിരുകൾ (boundaries) മാത്രം അടയാളപ്പെടുത്തുക, ബാക്കിയുള്ളവ തനിയെ നടക്കട്ടെ.
TypeScript ടൈപ്പിംഗ് പിശകുകൾ കണ്ടെത്തുന്നതിനേക്കാൾ ഉപരിയായി പ്രവർത്തിച്ചു. അത് നിർബന്ധിത കരാറുകൾ (enforced contracts) സൃഷ്ടിച്ചു. ഈ കരാറുകൾ ഭയമില്ലാത്ത റീഫാക്റ്ററിംഗിനും വിശ്വസനീയമായ AI ടൂളുകൾക്കും വഴിമാറുന്നു.
ബഗുകൾ തടയാനാണ് നമ്മൾ ടൈപ്പുകൾ ഉപയോഗിക്കാൻ തുടങ്ങിയത്. എന്നാൽ മറ്റെല്ലാറ്റിന്റെയും അടിസ്ഥാനമായതുകൊണ്ടാണ് നമ്മൾ അവ തുടർന്നും ഉപയോഗിക്കുന്നത്.
Source: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-12m8
