TypeScript ምንድን ነው? ለገንቢ ላልሆኑ ሰዎች በቀላል ቋንቋ
TypeScript ከtypes ጋር የሚመጣ JavaScript ነው። እያንዳንዱ እሴት ምን ዓይነት መረጃ መሆን እንዳለበት መለያ ይጨምራሉ — ቁጥር፣ ጽሑፍ፣ የትዕዛዞች ዝርዝር — እና TypeScript ኮድዎ ከመሠራቱ በፊት አለመጣጣሞችን ይፈትሻል። የTypeScript ድረ-ገጽ "ለtypes syntax ያለው JavaScript" ብሎ ይገልጸዋል፤ ኮዱ ወደ ተራ JavaScript ሲቀየር types ይወገዳሉ፤ ከዚያም JavaScript በሚሠራበት ቦታ ሁሉ ይሠራል።
AI ሲገነቡ ለምን ይጠቅማል
AI ሞዴሎች ኮድን በፍጥነት ይጽፋሉ፤ ፈጣን ኮድ ደግሞ ስህተቶች አሉት፦ በአንድ ፋይል customerName የተባለ መስክ፣ በሌላ ፋይል customer_name፤ ዋጋ እንደ ቁጥር ሳይሆን እንደ ጽሑፍ የተላከ፤ ወይም ተግባር ያልተሟላ እሴት ይዞ የተጠራ። በተራ JavaScript ብዙዎቹ ስህተቶች የሚታዩት አንድ ሰው የተሳሳተ ቁልፍ ሲጫን ብቻ ነው።
TypeScript ብዙዎቹን ቀደም ብሎ ይይዛል፣ ኮዱ እየተጻፈ ሳለ፦
- AI ፈጣን ግብረመልስ ያገኛል። የtype ስህተቶች ትክክል ያልሆነውን መስመር በትክክል ይጠቁማሉ፤ ኤጀንቱ እርስዎ ከማየትዎ በፊት ማስተካከል ይችላል።
- ለውጦች ይበልጥ ደህና ናቸው። መስክ ብትቀይሩ፣ TypeScript አሁንም አሮጌውን ስም የሚጠቀሙ ቦታዎችን ሁሉ ይጠቁማል።
- ኮዱ ራሱን ያብራራል። Types ተግባር ምን እንደሚጠብቅና ምን እንደሚመልስ ይመዘግባሉ፤ ይህም ለእርስዎ፣ ለAI እና በኋላ ላይ ለሚሠራ ማንኛውም ገንቢ ይጠቅማል።
- አርታኢዎች ብልጥ ይሆናሉ። አርታኢው እያንዳንዱ እሴት ምን እንደሆነ ስለሚያውቅ autocomplete እና "go to definition" በደንብ ይሠራሉ።
ብዙ AI መተግበሪያ ገንቢዎች በነባሪ TypeScriptን የሚጠቀሙበት ትልቁ ምክንያት ይህ ነው።
የዕለት ተዕለት ምሳሌ
በተሰየሙ ክፍሎች ያለ የመርከብ መጋዘን አስቡ። እያንዳንዱ ክፍል ምልክት አለው፦ "ፓሌት ብቻ"፣ "ማቀዝቀዣ"፣ "ከ500 ኪ.ግ በላይ የለም"። ዕቃ ሲደርስ፣ በበሩ ላይ ያለ ፈታሽ ዕቃውን ከምልክቱ ጋር ያወዳድራል። ለደረቅ ዕቃ ክፍል የታቀደ የቀዘቀዘ ዓሣ በበሩ ላይ ይቆማል፤ ሳምንት ቆይቶ ሽታ ሲለቅ አይደለም።
TypeScript በሩ ላይ ያለው ፈታሽ ነው። types ምልክቶቹ ናቸው። ፍተሻው የሚከናወነው ዕቃው — ኮድዎ — ስራ ላይ ከመዋሉ በፊት ነው። ሁሉም ቦታ ሲገባ ምልክቶቹ ይወገዳሉ፦ የሚሠራው JavaScript ምንም type አይቀርለትም።
TypeScript እንዴት ይሰራል
- እርስዎ (ወይም AI)
.tsወይም.tsxፋይሎችን ይጽፋሉ — TypeScript በtype መለያዎች። - የtype ፈታሹ ኮዱን ያነባል እና አለመጣጣሞችን በአርታኢው ወይም በbuild ውስጥ እንደ ስህተቶች ይዘግባል።
- የbuild ደረጃ types ያስወግዳል፣ ተራ JavaScript ያመነጫል።
- JavaScriptው በብራውዘር ወይም በሰርቨር (Node.js፣ Deno፣ Bun) ላይ ይሠራል።
አስፈላጊ ውጤት፦ TypeScript የጻፉትን ኮድ ይፈትሻል፤ መተግበሪያው በሚሠራበት ጊዜ የሚመጣውን መረጃ አይፈትሽም። አንድ ውጫዊ API ያልተጠበቀ ነገር ቢልክ፣ የሩጫ ጊዜ validation ካልጨመሩ TypeScript አያየውም።
ምሳሌ፦ የቀጠሮ ቅጽ
ለፀጉር ሳሎን የቀጠሮ መተግበሪያ እየገነቡ ነው እንበል። ቀጠሮን የሚገልጽ type እነሆ፦
type Booking = {
id: number;
customerEmail: string;
service: "haircut" | "colour" | "blow-dry";
startsAt: Date;
price: number;
notes?: string; // the ? means optional
};
እና ቅድመ-ክፍያ የሚያሰላ ተግባር፦
function depositFor(booking: Booking): number {
return booking.price * 0.2;
}
አሁን TypeScript ምን እንደሚይዝ ይመልከቱ።
በስህተት የተጻፈ መስክ።
depositFor({ id: 1, customerEmail: "lena@example.com", service: "haircut",
startsAt: new Date(), prise: 40 });
TypeScript prise የሚታወቅ ንብረት እንዳልሆነና price እንደጎደለ ይዘግባል። በተራ JavaScript ይህ በጸጥታ NaN (ቁጥር አይደለም) የሆነ ቅድመ-ክፍያ ያሰላ ነበር።
የተሳሳተ ዓይነት እሴት።
const booking: Booking = { ...otherFields, price: "40" };
TypeScript ጽሑፍ ቁጥር በሚጠበቅበት ቦታ ጥቅም ላይ ሊውል እንደማይችል ይዘግባል። ያለሱ "40" * 0.2 በአጋጣሚ ይሠራል፤ ግን "40" + 5 "405" ይሰጣል — በደረሰኝ ላይ የሚታይ ዓይነት ባግ።
የሌለ አገልግሎት።
const booking: Booking = { ...otherFields, service: "perm" };
TypeScript "perm" ከተፈቀዱ አገልግሎቶች አንዱ እንዳልሆነ ይዘግባል። ሳሎኑ በኋላ perms ሲጨምር፣ ወደ type ያክሉት፤ TypeScript ማዘመን የሚያስፈልጋቸውን ቦታዎች ሁሉ ያሳያል — የዋጋ ዝርዝሩን፣ ቅጹን፣ የቀን መቁጠሪያ ቀለሞችን።
ሊይዘው የማይችለው። የቀጠሮ ቅጹ ከአሳሹ ወደ ሰርቨር price: "40" ቢልክ፣ በሰርቨር ላይ ያለው TypeScript በሩጫ ጊዜ አያየውም። ለዚህ ነው በደንብ የተሠሩ መተግበሪያዎች የሚመጣውን መረጃ ደግሞ የሚያረጋግጡት፤ ብዙውን ጊዜ ቅርጹን ፈትሾ ትክክለኛ Booking የሚያደርግ የvalidation ቤተ-መጻሕፍት በመጠቀም።
TypeScript ከJavaScript ጋር
| JavaScript | TypeScript | |
|---|---|---|
| ምንድን ነው | ብራውዘሮች የሚያሠሩት ቋንቋ | JavaScript ሲደመር የtype syntax |
| በብራውዘር በቀጥታ ይሠራል | አዎ | በመጀመሪያ ወደ JavaScript ይቀየራል |
| የtype ስህተቶችን ይይዛል | በሩጫ ጊዜ፣ ከተያዘ | በመጻፍ ጊዜ፣ ከመሠራቱ በፊት |
| ማዋቀር | የለም | የbuild ደረጃ (ብዙውን ጊዜ እንደ Vite ወይም Next.js ባሉ መሣሪያዎች ይያዛል) |
| ለምን ይሻላል | ትናንሽ ስክሪፕቶች፣ ፈጣን ሙከራዎች | የሚያድጉና የሚቀየሩ መተግበሪያዎች |
| የፋይል ቅጥያዎች | .js፣ .jsx | .ts፣ .tsx |
ማብራሪያ ያላቸው ቃላት
| ቃል | ትርጉም |
|---|---|
| Type | እሴት ምን ሊሆን እንደሚችል መግለጫ፦ ቁጥር፣ ጽሑፍ፣ የተወሰነ የነገር ቅርጽ። |
| Type annotation | በኮዱ ውስጥ የተጻፈ መለያ፤ ለምሳሌ price: number። |
| Type inference | TypeScript መለያ ሳይጠበቅበት type ራሱ ሲያውቅ። |
| Interface / type alias | የነገር ቅርጽ የተሰየመ መግለጫ፤ ለምሳሌ Booking። |
| Union type | ከብዙ አማራጮች አንዱ ሊሆን የሚችል እሴት፤ ለምሳሌ "haircut" | "colour"። |
| Optional property | ሊጎድል የሚችል መስክ፣ በ? ምልክት የተደረገበት። |
any | ለእሴቱ ፍተሻን የሚያጠፋ type — በጥንቃቄ የሚጠቀሙበት መውጫ። |
| Type error | TypeScript የአንድ ነገር አለመጣጣሙን የሚገልጽ ሪፖርት። |
| Compile / transpile | TypeScriptን ወደ JavaScript መቀየር። |
.tsx | JSX የያዘ TypeScript ፋይል፣ በReact መተግበሪያዎች ውስጥ የሚያገለግል። |
tsconfig.json | TypeScript ፕሮጀክቱን ምን ያህል በጥብቅ እንደሚፈትሽ የሚያስቀምጥ የቅንብሮች ፋይል። |
| Runtime validation | መተግበሪያው በሚሠራበት ጊዜ እውነተኛውን የሚመጣ መረጃ መፈተሽ። |
የተለመዱ ስህተቶችና ያልተሳሳቱ ግንዛቤዎች
- "TypeScript ኮዱን ከባግ ነፃ ያደርገዋል።" የመረጃ ቅርጽ አለመጣጣሞችን ይይዛል፤ የተሳሳተ ሎጂክን አይደለም። የ20% ፋንታ 2% ቅድመ-ክፍያ በtype ፍተሻ ያልፋል።
- "Types ከመጥፎ ግብዓት ይጠብቁኛል።" Types በሩጫ ጊዜ ይጠፋሉ። ከተጠቃሚዎች፣ ከቅጾችና ከAPIዎች የሚመጣን መረጃ validate ያድርጉ።
- በየቦታው
any። AI ተጣብቆ ሲሆን ስህተቶችን ለማጥፋትanyወይም// @ts-ignoreሊጠቀም ይችላል። ይህ ችግሮችን ከመፍታት ይልቅ ይደብቃቸዋል። - Preview ስለሚሠራ የtype ስህተቶችን ችላ ማለት። አንዳንድ መሣሪያዎች የtype ስህተት ያለበትን ኮድ አሁንም ያሠራሉ። ስህተቶቹ አሁንም ሊፈጠሩ የሚጠብቁ ባግች ናቸው።
- "TypeScript ቀርፋፋ ነው።" Types ከመሠራቱ በፊት ይወገዳሉ፤ የሚሠራው JavaScript በመሠረቱ ተመሳሳይ ነው።
- "ለትላልቅ ቡድኖች ብቻ ነው።" ብቻቸውን የሚገነቡም ይጠቀማሉ፤ በተለይ AI አብዛኛውን ለውጥ በሚያደርግበት ጊዜ።
ለAI ገንቢዎ ምን እንደሚጠይቁ
- "TypeScriptን በstrict mode ተጠቀም።"
- "ለዋና መዝገቦቻችን — Customer፣ Booking፣ Invoice — የተጋሩ types ግለጽና በሁለቱም frontend እና backend ላይ ተጠቀምባቸው።"
- "ስህተቶችን ለማለፍ
anyወይም@ts-ignoreአትጠቀም፤ ዋናውን ችግር አስተካክል እና ምን እንደነበረ ንገረኝ።" - "ገቢ መረጃን ሁሉ በሰርቨሩ ላይ validate አድርግ፤ በtypes ብቻ አትወስን።"
- "የtype ፈታሹን አሂድና ተከናውኗል ከማለትህ በፊት እያንዳንዱን ስህተት አስተካክል።"
- "መስክ ስትቀይር TypeScript የሚጠቁማቸውን ቦታዎች ሁሉ አዘምን።"
- "ይህንን type ስህተት በተራ እንግሊዝኛ አብራራ።"
AI ያመነጨውን ለመፈተሽ የበለጠ ለማወቅ AI ያመነጨ ኮድን እንዴት መገምገም እንደሚቻል እና AI ለተገነባ መተግበሪያ ባግ እንዴት መፈለግ እንደሚቻል ይመልከቱ።
TypeScript በMythex
ምንም የተለየ ነገር ካልጠየቁ፣ Mythex አዳዲስ ፕሮጀክቶችን በVite + React + TypeScript + Tailwind ላይ ይጀምራል። የኮድ አርታኢው የቋንቋ ብልህነት ይዟል — ለTypeScript እና JavaScript (ከሌሎች ቋንቋዎች መካከል) ማጠናቀቂያዎች፣ ምርመራዎችና go-to-definition — ስለዚህ የtype ስህተቶች በኮዱ ውስጥ ይታያሉ፤ በPreview ብቻ አይደለም። አርታኢው በFree ላይ ለማንበብ ብቻ፣ በPro ላይ ሙሉ ለሙሉ ለማረም ይቻላል። በመጀመሪያ ጥያቄዎ የተለየ ማዋቀር ማለት ይችላሉ፤ ቴክኖሎጂው እንዴት እንደሚመረጥ የሰነድ ገጽ ያብራራል፣ የኮድ አርታኢው ሰነድ ደግሞ አርታኢው ምን እንደሚያሳይ ይሸፍናል።
ጥያቄዎች
TypeScript በቀላል አነጋገር ምንድን ነው?
TypeScript ከtypes ጋር የሚመጣ JavaScript ነው። እያንዳንዱ እሴት ምን ዓይነት መረጃ መሆን እንዳለበት ይሰይማሉ፤ ለምሳሌ ቁጥር፣ ጽሑፍ ወይም የደንበኛ መዝገብ፤ TypeScript ደግሞ ኮዱ ከመሠራቱ በፊት አለመጣጣሞችን ይፈትሻል። ከዚያም ወደ ተራ JavaScript ይቀየራል።
TypeScript ከJavaScript የተለየ ቋንቋ ነው?
የJavaScript superset ነው፤ ይህም JavaScript ሲደመር ለtypes ተጨማሪ syntax ማለት ነው። የTypeScript ድረ-ገጽ "ለtypes syntax ያለው JavaScript" ብሎ ይገልጸዋል። ኮዱ ለመሠራት ወደ JavaScript ሲቀየር types ይወገዳሉ።
AI መተግበሪያ ገንቢዎች TypeScript ለምን ይጠቀማሉ?
Types ለAIውና ዙሪያውን ላሉት መሣሪያዎች ስህተቶችን በፍጥነት ለመያዝ መንገድ ይሰጣሉ፤ ለምሳሌ ቁጥር በሚጠበቅበት ቦታ ጽሑፍ ማስገባት ወይም የመስክ ስም በስህተት መጻፍ። ስህተቶቹ ተጠቃሚ ከማጋጠሙ በፊት ይታያሉ፤ ይህም በAI የተመነጨ ኮድ ለመፈተሽና ለመቀየር ቀላል ያደርገዋል።
TypeScript መተግበሪያን ከባግ ነፃ ያደርገዋል?
አያደርገውም። የመረጃ ቅርጽ ላይ ያሉ ስህተቶችን ቡድን ይይዛል፤ ነገር ግን የተሳሳተ የንግድ ሎጂክን አይይዝም፤ እንዲሁም ከተጠቃሚዎችና ከAPIዎች በሩጫ ጊዜ የሚመጣን መረጃ validation ካልጨመሩ አያረጋግጥም።
TypeScriptን ማን ይሠራዋል?
TypeScript በMicrosoft የሚዘጋጅ ክፍት ምንጭ ቋንቋ ነው። JavaScript በሚሠራበት ቦታ ሁሉ ይሠራል፤ ብራውዘሮች፣ Node.js፣ Deno እና Bunን ጨምሮ።