Next.js 16 හි Server Action එකක් ක්රියාත්මක කරමින්, කේතය සම්පූර්ණයෙන්ම හරියට පරිවර්තනය වූ බවට පෙනුනේය – කිසිදු දෝෂයක් නොපෙනෙයි, lint ලයින් හරිතයි. එහෙත්, රන්ටයිම් එකේ Cannot read properties of undefined (reading 'id') යන වැරදි පණිවිඩයක් එළියට එළඹුණි.
අදාල පසුබැසීමේ විශ්ලේෂණය කිරීමෙන් පසු, ප්රධාන ගැටළුව තේරුම්ගත හැකි වුණේ, TypeScript සංයුක්තකය (compiler) හරිත ලයිට් එක ලබා දී තිබුණත්, ඒක තවත් පරීක්ෂණයක් නොකළ බැවිනි. strict null checks සක්රිය කිරීම අත්යවශ්ය වුවත්, ඒක පමණක් ප්රමාණවත් නොවේ.
TypeScript සංයුක්තකය ස්ථාවර වර්ග (static types) පමණක් පරීක්ෂා කරයි. API, JSON.parse, දත්ත ගබඩා වැනි බාහිර මූලාශ්රයන්ගෙන් ලැබෙන සත්ය දත්තවලට එය ප්රවේශ නොලබයි. මේ දෙකේ ගැලපීමේ පරතරය බග් (bug) වලට හේතු වේ.
Pattern 1 – වැරදි Assertion Functions
Assertion function එකක් asserts val is T ලෙස දර්ශනය කරයි. එය ඇතුළත throw නොකරයි නම්, සංයුක්තකය එය සත්ය ලෙස පිළිගනී, නමුත් රන්ටයිම් එකේ null හෝ undefined වස්තුවක් පවා භාවිතා කළහොත් TypeError එකක් සිදුවේ. නිවැරදි ආකාරය නම්, අගය null/undefined වුවහොත් throw කිරීමයි.
Pattern 2 – අසමත් Type Definitions සහ any
බොහෝ npm ලයිබ්රරීන් @types/ පත්රිකාවන් මඟින් දෙන වර්ග, ඇස්තමේන්තු පමණක් වේ. උදාහරණයක් වශයෙන්, කුකී එකක් පාර්ස් කරන ලයිබ්රරියක් string ලෙස වර්ගය දෙන අතර, රන්ටයිම් එකේ null ලබා දිය හැකිය. සංයුක්තකය එය පිළිගනී, නමුත් වැඩසටහන අසාර්ථක වේ.
මෙම ගැටළු සම්පූර්ණයෙන්ම නිරෝධායන කර ගැනීමට, runtime validation අවශ්ය වේ. එනම්, API ප්රතිචාර, DB ප්රතිඵල, HTTP header වැනි බාහිර දත්තවලට පූර්ව පරීක්ෂණ (guard) එකක් ඇතුළත් කිරීම.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලාංකීය සංවර්ධකයන්ට TypeScript භාවිතය වැඩි වශයෙන් ජනප්රිය වෙමින් පවතී. මේ පරීක්ෂණ පද්ධතිය හඳුන්වාදීමෙන්:
- ඉගෙනුම් වාරිකයන් – නවතම වර්ග පරීක්ෂණ තත්ත්වයන් ගැන ගැඹුරු අවබෝධයක් ලබා ගත හැකිය.
- ව්යාපාරික පද්ධති – නිෂ්පාදන පරිසරයේ අච්චු දෝෂ අඩු කර, සේවා අඩුවීමේ අවදානම කුඩා කරයි.
- ස්ථාපිත ආරක්ෂාව – runtime validation එකක් එක් කිරීමෙන්, API ආක්රමණයන් හෝ දත්ත අසම්පූර්ණතාවයන්ට වඩා හොඳ ප්රතිචාරයක් ලබා ගත හැක.
ඒ නිසා, ශ්රී ලංකාවේ තාක්ෂණික ආයතන, startup හෝ ඉහළ තලයේ සංවර්ධකයන්ට මෙම පියවර අත්යවශ්ය වේ.
අවසන් වශයෙන්, strict null checks එකක් පමණක් නොව, දත්ත ප්රතිචාර පරීක්ෂණයක් සමඟ එකතු කරන්නේ නිෂ්පාදනයේ ගුණාත්මකභාවය ඉහළ නැංවීමට හොඳම ක්රමයයි.