TypeScript પ્રોડક્શનમાં પહોંચતા પહેલા જ મૂર્ખતાભર્યા બગ્સ પકડી લે છે. તે સ્પેલિંગમાં ભૂલ પડેલી પ્રોપર્ટી, તમે ભૂલી ગયેલું આર્ગ્યુમેન્ટ, અને ખોટી રીતે ડેટા રિટર્ન કરતું બ્રાન્ચ માટે તમને ચેતવે છે. તમે તેને સુધારો છો, બિલ્ડ પાસ થાય છે, અને તમે તેને શિપ કરો છો. પરંતુ સ્ટેટિક ટાઇપ્સની એક મર્યાદા છે. એકવાર કમ્પાઈલર પૂરું થાય, પછી દરેક એનોટેશન દૂર કરી દેવામાં આવે છે. તમારા કોડને ચલાવતું JavaScript એન્જિન તમારા ઇન્ટરફેસ, તમારા બ્રાન્ડેડ ટાઇપ્સ, અથવા તમારા કાળજીપૂર્વક નિર્ધારિત સ્ટ્રિંગ લિટરલ્સ વિશે ક્યારેય સાંભળ્યું હોતું નથી. તે ફક્ત વેલ્યુઝ અને ભાષાના વાસ્તવિક નિયમોને જ જાણે છે.

બિલ્ડ પાસ થવાનો અર્થ એ નથી કે રનટાઇમ સુરક્ષિત છે. ટેસ્ટ ગ્રીન હોવાનો અર્થ એ નથી કે યુઝર્સ એક સ્થિર એપ્લિકેશન જોઈ રહ્યા છે. જો તમારું માનસિક મોડેલ TypeScript ની સીમા પર જ અટકી જાય, તો તમે બરાબર એ જ જગ્યાએ અંધારામાં હોવ છો જ્યાં ખરેખર ક્રેસ થાય છે.

કમ્પાઈલ-ટાઇમ ભ્રમ

TypeScript ની આખી ટાઇપ સિસ્ટમ કમ્પાઈલેશન દરમિયાન ભૂંસાઈ જાય છે. કોઈપણ પ્રોજેક્ટ માટે કમ્પાઈલ કરેલ JavaScript આઉટપુટ ખોલો અને તમને interface, type, અથવા જનરિક કન્સ્ટ્રેઇન્ટ્સનો કોઈ અંશ જોવા મળશે નહીં. તેઓ ડિઝાઇન-ટાઇમ સ્કેફોલ્ડિંગ છે. બ્રાઉઝર અથવા Node.js પ્રોસેસ સાદું JavaScript એક્ઝિક્યુટ કરે છે, અને તમારા ફંક્શન્સમાંથી વહેતી વેલ્યુઝ તમે કાગળ પર જાહેર કરેલા ટાઇપ્સ સાથે મેળ ખાશે તેની કોઈ ખાતરી હોતી નથી.