ටයිප්ස්ක්‍රිප්ට් යනු කුමක්ද සහ මම එය ජාවාස්ක්‍රිප්ට් වෙනුවට භාවිතා කරන්නේ ඇයි? [වසා ඇත]


1706

කරුණාකර ටයිප්ස්ක්‍රිප්ට් භාෂාව යනු කුමක්දැයි ඔබට විස්තර කළ හැකිද?

ජාවාස්ක්‍රිප්ට් හෝ ලබා ගත හැකි පුස්තකාලවලට කළ නොහැකි එය කළ හැක්කේ කුමක් ද?



මෙන්න මේ පිළිබඳ යම් අදහසක්: blog.priceandcost.com/development/…
ජෙෆිම්

3
මෙහි සමහර සටහන්: basarat.gitbooks.io/typescript/content/docs/why-typescript.html
basarat

Answers:


1308

මම මුලින් මෙම පිළිතුර ලිව්වේ ටයිප්ස්ක්‍රිප්ට් තවමත් උණුසුම් නොවන විට ය. අවුරුදු පහකට පසු, මෙය හරි දළ විශ්ලේෂණයකි, නමුත් වැඩි ගැඹුරක් සඳහා පහත ලොඩ්විජ්ගේ පිළිතුර බලන්න

අඩි 1000 දර්ශනය ...

ටයිප්ස්ක්‍රිප්ට් යනු ජාවාස්ක්‍රිප්ට් හි සුපර්සෙට් එකක් වන අතර එය මූලික වශයෙන් විකල්ප ස්ථිතික ටයිප් කිරීම, පන්ති සහ අතුරුමුහුණත් සපයයි. විශාල වාසියක් වන්නේ ඔබ කේතය ටයිප් කරන විට පොදු දෝෂ හඳුනා ගැනීම සඳහා වඩාත් හොඳ පරිසරයක් සැපයීමට IDEs සක්‍රීය කිරීමයි .

මා අදහස් කරන දේ පිළිබඳ අදහසක් ලබා ගැනීමට , භාෂාව පිළිබඳ මයික්‍රොසොෆ්ට් හඳුන්වාදීමේ වීඩියෝව බලන්න .

විශාල ජාවාස්ක්‍රිප්ට් ව්‍යාපෘතියක් සඳහා, ටයිප්ස්ක්‍රිප්ට් භාවිතා කිරීමෙන් වඩාත් ශක්තිමත් මෘදුකාංගයක් ලැබිය හැකි අතර සාමාන්‍ය ජාවාස්ක්‍රිප්ට් යෙදුමක් ක්‍රියාත්මක වන තැන යෙදවිය හැකිය.

එය විවෘත මූලාශ්‍රයකි, නමුත් ඔබට යතුරු ලියනය කරන විට දක්ෂ ඉන්ටෙලිසෙන්ස් එකක් ලැබෙන්නේ ඔබ සහාය දක්වන IDE එකක් භාවිතා කරන්නේ නම් පමණි. මුලදී, මෙය මයික්‍රොසොෆ්ට් හි විෂුවල් ස්ටුඩියෝ පමණි (බ්ලොග් සටහනේ ද සටහන් විය මිගෙල් ඩි ඉකාසා සටහනේ ). මේ දිනවල අනෙකුත් IDEs ද ටයිප්ස්ක්‍රිප්ට් සහාය ලබා දෙයි .

ඒ වගේ වෙනත් තාක්ෂණයන් තියෙනවද?

තියෙනවා CoffeeScript , නමුත් ඇත්තටම වෙනස් අරමුණ සේවය කරයි. IMHO, කෝපි ස්ක්‍රිප්ට් මිනිසුන්ට කියවීමේ හැකියාව ලබා දෙයි, නමුත් ටයිප්ස්ක්‍රිප්ට් එහි විකල්ප ස්ථිතික ටයිප් කිරීම හරහා මෙවලම් සඳහා ගැඹුරු කියවීමේ හැකියාව ලබා දෙයි ( තව ටිකක් විවේචන සඳහා මෙම මෑත බ්ලොග් සටහන බලන්න ). ඩාර්ට් ද ඇත නමුත් එය ජාවාස්ක්‍රිප්ට් වෙනුවට ආදේශ කිරීමකි (එයට ජාවාස්ක්‍රිප්ට් කේතය නිපදවිය හැකි වුවද )

උදාහරණයක්

උදාහරණයක් ලෙස, මෙන්න ටයිප්ස්ක්‍රිප්ට් කිහිපයක් (ඔබට මෙය ටයිප්ස්ක්‍රිප්ට් ක්‍රීඩා පිටියේ සෙල්ලම් කළ හැකිය )

class Greeter {
    greeting: string;
    constructor (message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}  

මෙන්න එය නිපදවන ජාවාස්ක්‍රිප්ට්

var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
    return Greeter;
})();

ටයිප්ස්ක්‍රිප්ට් සාමාජික විචල්‍යයන් සහ පන්ති ක්‍රම පරාමිතීන් නිර්වචනය කරන්නේ කෙසේදැයි බලන්න. ජාවාස්ක්‍රිප්ට් වෙත පරිවර්ථනය කිරීමේදී මෙය ඉවත් කරනු ලැබේ, නමුත් සංඛ්‍යාත්මක වර්ගයක් ඉදිකිරීම්කරු වෙත යැවීම වැනි දෝෂ හඳුනා ගැනීමට IDE සහ සම්පාදකයා භාවිතා කරයි.

එය පැහැදිලිව ප්‍රකාශයට පත් නොකළ වර්ග අනුමාන කිරීමට ද හැකියාව ඇත, නිදසුනක් ලෙස, එය greet()නූලක් ලබා දෙන ක්‍රමය තීරණය කරයි .

යතුරු ලියනය නිදොස් කිරීම

බොහෝ බ්‍රව්සර් සහ IDEs ප්‍රභව සිතියම් හරහා සෘජු නිදොස්කරණය සඳහා සහය ලබා දේ. වැඩි විස්තර සඳහා මෙම සිරස් පිටාර ගැලීමේ ප්‍රශ්නය බලන්න: විෂුවල් ස්ටුඩියෝ සමඟ ටයිප්ස්ක්‍රිප්ට් කේතය නිදොස් කිරීම

වැඩි විස්තර දැන ගැනීමට අවශ්‍යද?

මම මුලින් මෙම පිළිතුර ලිව්වේ ටයිප්ස්ක්‍රිප්ට් තවමත් උණුසුම් නොවන විට ය. තවත් විස්තර සඳහා මෙම ප්‍රශ්නයට ලොඩ්විජ්ක්ගේ පිළිතුර බලන්න .


103
වෙබ්ස්ටෝම් දැන් ටයිප්ස්ක්‍රිප්ට් හි හොඳ ඉන්ටෙලිසෙන්ස් ලබා දෙන අතර එය බහුකාර්ය වේ.
රාඩෙක්

27
මෙම මෙවලම් වල ඇති ගැටළුව නම්, ඔබ කිසි විටෙකත් ජාවාස්ක්‍රිප්ට් වෙතින් සම්පූර්ණ ක්‍රියාකාරිත්වය ලබා නොගැනීමයි. ඔව්, එය හොඳ කියවීමේ හැකියාව ලබා දෙන නමුත් සම්පාදනය කරන ලද කේතය සමහර විට ඉතා අවුල් සහගතය. ස්වදේශික ජාවාස්ක්‍රිප්ට් ලිවීම සඳහා ඔබ තෙවන පාර්ශවීය මෙවලමක් මත විශ්වාසය තබයි, මම සිතන්නේ මෙය යා යුතු මාර්ගය නොවේ, එය භාෂාවක් වෙනත් භාෂාවකට පරිවර්තනය කිරීමක් වැනිය. ඔබ කැමති වෙනත් භාෂාවක් ලෙස හැසිරීමට වෙනත් භාෂාවක් නොවන භාෂාවක් වෙනස් කිරීමට අවශ්‍ය නම් එය මෝඩ හා මෝඩය. ...... (1 වන කොටසේ අවසානය) ......
කෝඩ්බීට්

56
අර්වින්ස්: ඔබ තවමත් එකලස් කරන්නෙකු සමඟ වැඩසටහන් කළාද?
වික්සියාආර්

11
අර්වින්ස් ඔබ ටයිප්ස්ක්‍රිප්ට් ක්‍රියා කරන ආකාරය ගැන උපකල්පන කරමින් සිටී. ඔබට සරල ජාවාස්ක්‍රිප්ට් ටයිප්ස්ක්‍රිප්ට් ලෙස ලිවිය හැකි අතර සම්පාදකයාට කාල වර්ග පරීක්ෂා කිරීම පමණක් කළ හැකිය. එසේ කිරීමෙන් කාර්ය සාධන අලාභයක් නොමැත.
thoughtrepo

41
Erv අර්විනස් ටයිප්ස්ක්‍රිප්ට්හි කාරණය වන්නේ සම්පාදිත කාල වර්ගය පරීක්ෂා කිරීමයි. එහි වටිනාකම ඔබට නොපෙනේ නම්, එය ඉතා හොඳයි. ටයිප්ස්ක්‍රිප්ට් "ඔබේ පළමු ඒකක පරීක්ෂණය" ලෙසට යොමු කර ඇත. විකල්ප වර්ග පරීක්ෂාවට වටිනාකමක් තිබේද නැද්ද යන්න සාකච්ඡා කරන බොහෝ සම්පත් ඇති අතර අපට මෙහි කළ හැකි දේට වඩා විස්තරාත්මක වේ. මම ඔබට කිසිවක් ඒත්තු ගැන්වීමට උත්සාහ නොකරමි, වැරදි වැටහීමක් නිවැරදි කිරීම.
thoughtrepo

1061

ජාවාස්ක්‍රිප්ට් සමඟ ටයිප්ස්ක්‍රිප්ට් සම්බන්ධතාවය

ටයිප්ස්ක්‍රිප්ට් යනු ජාවාස්ක්‍රිප්ට් හි ටයිප් කරන ලද සුපර්සෙට් එකක් වන අතර එය සරල ජාවාස්ක්‍රිප්ට් - ටයිප්ස්ක්‍රිප්ට්ලැන්ග්.ආර් .

ජාවාස්ක්‍රිප්ට් යනු ක්‍රමලේඛන භාෂාවක් වන අතර එය EMCA හි තාක්ෂණික කමිටුව 39 විසින් සංවර්ධනය කරන ලද අතර එය විවිධ පාර්ශවකරුවන්ගෙන් සැදුම්ලත් පිරිසකි. TC39 යනු ECMA විසින් මෙහෙයවනු ලබන කමිටුවකි : අභ්‍යන්තර ප්‍රමිති සංවිධානයකි. ජාවාස්ක්‍රිප්ට් විවිධ වෙළෙන්දන් විසින් විවිධ ක්‍රියාත්මක කිරීම් සිදු කරයි (උදා: ගූගල්, මයික්‍රොසොෆ්ට්, ඔරකල්, ආදිය). ජාවාස්ක්‍රිප්ට් හි පරමාර්ථය වන්නේ වෙබයේ භාෂාවයි.

ටයිප්ස්ක්‍රිප්ට් යනු ජාවාස්ක්‍රිප්ට් භාෂාවේ සුපිරි කට්ටලයක් වන අතර එය තනි විවෘත කේත සම්පාදකයක් ඇති අතර එය ප්‍රධාන වශයෙන් තනි වෙළෙන්දෙකු විසින් සංවර්ධනය කර ඇත: මයික්‍රොසොෆ්ට්. ටයිප්ස්ක්‍රිප්ට් හි පරමාර්ථය වන්නේ ටයිප් පද්ධතියක් හරහා ඉක්මනින් වැරදි හසු කර ගැනීමට සහ ජාවාස්ක්‍රිප්ට් සංවර්ධනය වඩාත් කාර්යක්ෂම කිරීමට උපකාර කිරීමයි.

අත්‍යවශ්‍යයෙන්ම ටයිප්ස්ක්‍රිප්ට් සිය අරමුණු තුනකින් සාක්ෂාත් කරගනී:

  1. නවීන ජාවාස්ක්‍රිප්ට් විශේෂාංග සඳහා සහය - ජාවාස්ක්‍රිප්ට් භාෂාව (ධාවන කාලය නොවේ) ECMAScript ප්‍රමිතීන් හරහා ප්‍රමිතිකරණය කර ඇත. සියලුම බ්‍රව්සර් සහ ජාවාස්ක්‍රිප්ට් ධාවන වේලාවන් සියලු ECMAScript ප්‍රමිතීන්ගේ සියලුම අංගයන්ට සහය නොදක්වයි (මෙම දළ විශ්ලේෂණය බලන්න ). ටයිප්ස්ක්‍රිප්ට් නවතම ECMAScript විශේෂාංග භාවිතා කිරීමට ඉඩ දෙන අතර ඒවා ඔබ තෝරාගත් පැරණි ECMAScript ඉලක්ක වෙත පරිවර්තනය කරයි ( සම්පාදක විකල්පය යටතේ සම්පාදක ඉලක්ක ලැයිස්තුව බලන්න --target). මෙයින් අදහස් කරන්නේ ඔබට මොඩියුල, ලැම්බඩා කාර්යයන්, පන්ති, පැතිරීමේ ක්‍රියාකරු සහ විනාශ කිරීම වැනි නව විශේෂාංග ආරක්ෂිතව භාවිතා කළ හැකි අතර පැරණි බ්‍රව්සර් සහ ජාවාස්ක්‍රිප්ට් ධාවන වේලාවන් සමඟ පසුපසට අනුකූල වන බවයි.

  2. උසස් වර්ගයේ පද්ධතිය - වර්ගයේ සහාය ECMAScript ප්‍රමිතියේ කොටසක් නොවන අතර එය කිසි විටෙකත් ජාවාස්ක්‍රිප්ට්හි සම්පාදනය කරන ලද ස්වභාවය වෙනුවට අර්ථකථනය කරන ලද ස්වභාවය නිසා නොවනු ඇත. ටයිප්ස්ක්‍රිප්ට් වර්ගයේ පද්ධතිය ඇදහිය නොහැකි තරම් පොහොසත් වන අතර ඒවාට ඇතුළත් වන්නේ: අතුරුමුහුණත්, එනූම්ස්, දෙමුහුන් වර්ග, ජනක විද්‍යාව, යුනියන් / ඡේදනය වන වර්ග, ප්‍රවේශ විකරණකාරක සහ තවත් බොහෝ දේ. ටයිප්ස්ක්‍රිප්ට් හි නිල වෙබ් අඩවිය මෙම විශේෂාංග පිළිබඳ දළ විශ්ලේෂණයක් ලබා දෙයි. ටයිප්ස්ක්‍රිප්ට් වර්ගයේ පද්ධතිය වෙනත් බොහෝ ටයිප් කළ භාෂාවන්ට සමානය. සමහර අවස්ථාවල එය වඩා බලවත් ය.

  3. සංවර්ධක මෙවලම් සහාය - වර්ධක සම්පාදනය සහ IDE ඒකාබද්ධ කිරීම යන දෙකටම සහාය දැක්වීමට පසුබිම් ක්‍රියාවලියක් ලෙස ටයිප්ස්ක්‍රිප්ට් සම්පාදකයාට ක්‍රියාත්මක විය හැකි අතර එමඟින් ඔබට වඩාත් පහසුවෙන් සැරිසැරීමට, ගැටළු හඳුනා ගැනීමට, හැකියාවන් පරීක්ෂා කිරීමට සහ ඔබේ කේත පදනම නැවත සකස් කිරීමට හැකිය.

වෙනත් ජාවාස්ක්‍රිප්ට් ඉලක්කගත භාෂාවන් සමඟ ටයිප්ස්ක්‍රිප්ට් සම්බන්ධතාවය

ජාවාස්ක්‍රිප්ට් සමඟ සම්පාදනය කරන වෙනත් භාෂාවන්ට සාපේක්ෂව ටයිප්ස්ක්‍රිප්ටයට අද්විතීය දර්ශනයක් ඇත. ජාවාස්ක්‍රිප්ට් කේතය වලංගු ටයිප්ස්ක්‍රිප්ට් කේතය; ටයිප්ස්ක්‍රිප්ට් යනු ජාවාස්ක්‍රිප්ට්හි සුපිරි කට්ටලයකි. ඔබට ඔබගේ .jsලිපිගොනු ගොනුවලට නැවත නම් .tsකර ටයිප්ස්ක්‍රිප්ට් භාවිතා කිරීම ආරම්භ කළ හැකිය (පහත "ජාවාස්ක්‍රිප්ට් අන්තර් ක්‍රියාකාරිත්වය" බලන්න). ටයිප්ස්ක්‍රිප්ට් ලිපිගොනු කියවිය හැකි ජාවාස්ක්‍රිප්ට් වෙත සම්පාදනය කර ඇති අතර එමඟින් නැවත සංක්‍රමණය වීමට හැකි වන අතර සම්පාදනය කරන ලද ටයිප්ස්ක්‍රිප්ට් තේරුම් ගැනීම කිසිසේත් අපහසු නොවේ. ටයිප්ස්ක්‍රිප්ට් ජාවාස්ක්‍රිප්ට් හි සාර්ථකත්වයන් මත ගොඩනැඟෙන අතර එහි දුර්වලතා වැඩි දියුණු කරයි.

එක් අතකින්, නවීන ECMAScript ප්‍රමිතීන් ගෙන එය පැරණි ජාවාස්ක්‍රිප්ට් අනුවාදයන් සමඟ සම්පාදනය කරන අනාගත සාක්ෂි මෙවලම් ඔබ සතුව ඇති අතර බාබෙල් වඩාත් ජනප්‍රිය එකක් වේ. අනෙක් අතට, ඔබට ජාවාස්ක්‍රිප්ට් වෙතින් සම්පූර්ණයෙන්ම වෙනස් විය හැකි භාෂා ඇත, ඒවා කෝපි ස්ක්‍රිප්ට්, ක්ලෝජුර්, ඩාර්ට්, එල්ම්, හැක්ස්, ස්කලා.ජේ වැනි ජාවාස්ක්‍රිප්ට් ඉලක්ක ලැයිස්තුවකරයි. මෙම භාෂාවන්, ජාවාස්ක්‍රිප්ට් හි අනාගතය කවදා හෝ ගෙන යා හැකි තැනට වඩා හොඳ විය හැකි වුවත්, ඔවුන්ගේ අනාගතය සහතික කිරීම සඳහා ප්‍රමාණවත් දරුකමට හදා ගැනීමක් සොයා නොගැනීමේ වැඩි අවදානමක් ඇත. මෙම භාෂාවන්ගෙන් සමහරක් සඳහා පළපුරුදු සංවර්ධකයින් සොයා ගැනීමට ඔබට තවත් කරදර ඇති විය හැක, නමුත් ඔබ සොයා ගන්නා ඒවා බොහෝ විට වඩාත් උද්යෝගිමත් විය හැකිය. ජාවාස්ක්‍රිප්ට් සමඟ අන්තර් ක්‍රියා කිරීමද තව ටිකක් සම්බන්ධ විය හැකිය, මන්ද ඒවා ජාවාස්ක්‍රිප්ට් ඇත්ත වශයෙන්ම වඩා දුරින් ඉවත් කර ඇති බැවිනි.

ටයිප්ස්ක්‍රිප්ට් මෙම අන්ත දෙක අතර පිහිටා ඇති අතර එමඟින් අවදානම සමතුලිත කරයි. ටයිප්ස්ක්‍රිප්ට් යනු ඕනෑම ප්‍රමිතියකින් අවදානම් සහගත තේරීමක් නොවේ. ඔබ ජාවාස්ක්‍රිප්ට් ගැන හුරුපුරුදු නම් පුරුදු වීමට ඉතා සුළු උත්සාහයක් අවශ්‍ය වේ, එය සම්පූර්ණයෙන්ම වෙනස් භාෂාවක් නොවන බැවින් විශිෂ්ට ජාවාස්ක්‍රිප්ට් අන්තර් ක්‍රියාකාරීත්ව සහයෝගයක් ඇති අතර එය මෑතකදී දරුකමට හදා ගැනීමක් දැක තිබේ.

විකල්ප වශයෙන් ස්ථිතික ටයිප් කිරීම සහ අනුමාන කිරීම ටයිප් කරන්න

ජාවාස්ක්‍රිප්ට් ගතිකව ටයිප් කර ඇත. මෙයින් අදහස් කරන්නේ ධාවන වේලාවේදී එය ක්ෂණිකව ක්ෂණිකව ක්‍රියාත්මක වන තුරු විචල්‍යතාව කුමක්දැයි ජාවාස්ක්‍රිප්ට් නොදන්නා බවයි. මෙයින් අදහස් කරන්නේ එය ප්‍රමාද වැඩියි. ටයිප්ස්ක්‍රිප්ට් ජාවාස්ක්‍රිප්ට් සඳහා ටයිප් සහය එක් කරයි. ඔබ යම් ආකාරයක විචල්‍යයක් ඇති බවට ව්‍යාජ උපකල්පන නිසා ඇති වන දෝෂයන් ඔබ ඔබේ කාඩ්පත් නිවැරදිව වාදනය කරන්නේ නම් (ඔබ ඔබේ කේතය කෙතරම් තදින් ටයිප් කරනවාද යන්න හෝ ඔබේ කේතය ටයිප් කරන්නේ නම් එය ඔබට භාරයි) සම්පූර්ණයෙන්ම තුරන් කළ හැකිය.

ටයිප්ස්ක්‍රිප්ට් ටයිප් කිරීම ටිකක් පහසු කරයි. උදාහරණයක් ලෙස: var x = "hello"TypeScript හි සමාන වේ var x : string = "hello". වර්ගය හුදෙක් එහි භාවිතයෙන් අනුමාන කෙරේ. ඔබ පැහැදිලිවම වර්ග ටයිප් නොකලත්, ධාවන කාල දෝෂයක් ඇතිවිය හැකි යමක් කිරීමෙන් ඔබව බේරා ගැනීමට ඒවා තවමත් පවතී.

ටයිප්ස්ක්‍රිප්ට් පෙරනිමියෙන් විකල්ප ලෙස ටයිප් කරයි. නිදසුනක් ලෙස function divideByTwo(x) { return x / 2 }ටයිප්ස්ක්‍රිප්ට් හි වලංගු ශ්‍රිතයක් වන අතර එය ඕනෑම ආකාරයක පරාමිතියක් සමඟ හැඳින්විය හැකිය, එය නූලකින් ඇමතීමෙන් පැහැදිලිවම ධාවන කාල දෝෂයක් ඇති වේ. ඔබ ජාවාස්ක්‍රිප්ට් හි පුරුදු වූවාක් මෙන්. මෙය ක්‍රියාත්මක වන්නේ, කිසිදු වර්ගයක් නිශ්චිතවම පවරා නොමැති විට සහ වර්ගය අනුමාන කළ නොහැකි වූ විට, බෙදීම් බයිටූ උදාහරණයේ දී මෙන්, ටයිප්ස්ක්‍රිප්ට් විසින් ව්‍යංගයෙන් වර්ගය පවරනු ඇත any. මෙයින් අදහස් කරන්නේ DivByTwo ශ්‍රිතයේ අත්සන ස්වයංක්‍රීයව බවට පත්වන function divideByTwo(x : any) : anyබවයි. මෙම හැසිරීම තහනම් කිරීම සඳහා සම්පාදක ධජයක් ඇත : --noImplicitAny. මෙම ධජය සක්‍රීය කිරීමෙන් ඔබට වැඩි ආරක්ෂාවක් ලැබෙනු ඇති අතර එයින් අදහස් කරන්නේ ඔබට තවත් ටයිප් කිරීමක් කළ යුතු බවයි.

වර්ග වලට ඒවා හා සම්බන්ධ පිරිවැයක් ඇත. පළමුවෙන්ම, ඉගෙනීමේ වක්‍රය ඇති අතර, දෙවනුව, ඇත්ත වශයෙන්ම, නිසි තද ටයිප් කිරීම ද භාවිතා කරමින් කේත පදනමක් සැකසීමට ඔබට තව ටිකක් කාලය වැය වනු ඇත. මගේ අත්දැකීම් අනුව, ඔබ අනෙක් අය සමඟ බෙදාගන්නා ඕනෑම බැරෑරුම් කේත පදනමක් මත මෙම පිරිවැය මුළුමනින්ම වටී. ගිතූබ් හි ක්‍රමලේඛන භාෂා සහ කේතයේ ගුණාත්මකභාවය පිළිබඳ විශාල පරිමාණ අධ්‍යයනයකින් ඇඟවෙන්නේ, “සංඛ්‍යාත්මකව ටයිප් කළ භාෂාවන්, සාමාන්‍යයෙන්, ගතික වර්ගවලට වඩා අඩු දෝෂ සහිත වන අතර, ශක්තිමත් ටයිප් කිරීම එකම ආකාරයකින් දුර්වල ටයිප් කිරීමට වඩා හොඳය” යන්නයි.

ටයිප්ස්ක්‍රිප්ට් ජාවාස්ක්‍රිප්ට් වලට වඩා අඩු දෝෂ සහිත බව මෙම ලිපියෙන්ම සොයා ගැනීම සිත්ගන්නා කරුණකි:

ධනාත්මක සංගුණක ඇති අය සඳහා, භාෂාව සම්බන්ධ වී ඇත්තේ, සෙටෙරිස් පරිබුස්, අඩුපාඩු නිවැරදි කිරීම් විශාල සංඛ්‍යාවක් සමඟ ය. මෙම භාෂාවන්ට C, C ++, JavaScript , Objective-C, Php සහ Python ඇතුළත් වේ. Clojure, Haskell, Ruby, Scala, සහ TypeScript යන භාෂා සියල්ලටම negative ණාත්මක සංගුණක ඇති අතර එයින් ඇඟවෙන්නේ දෝෂ නිරාකරණය කිරීමේ ප්‍රති in ලවලට මෙම භාෂාවන් සාමාන්‍යයට වඩා අඩු බවයි.

වැඩි දියුණු කළ IDE සහාය

ටයිප්ස්ක්‍රිප්ට් සමඟ ඇති සංවර්ධන අත්දැකීම් ජාවාස්ක්‍රිප්ට් වලට වඩා විශාල දියුණුවකි. IDE එහි පොහොසත් වර්ගයේ තොරතුරු මත ටයිප්ස්ක්‍රිප්ට් සම්පාදකයා විසින් තත්‍ය කාලීනව දැනුම් දෙනු ලැබේ. මෙය ප්‍රධාන වාසි කිහිපයක් ලබා දෙයි. නිදසුනක් ලෙස, ටයිප්ස්ක්‍රිප්ට් සමඟ, ඔබේ සම්පූර්ණ කේත පදනම හරහා නැවත නම් කිරීම වැනි ප්‍රතික්‍රියාකාරක ආරක්ෂිතව කළ හැකිය. කේත සම්පුර්ණ කිරීමෙන්, පුස්තකාලයක් විසින් පිරිනමනු ලබන ඕනෑම කාර්යයක් සඳහා ඔබට පේළිගත උපකාර ලබා ගත හැකිය. තවත් ඒවා මතක තබා ගැනීමට හෝ සබැඳි යොමු කිරීම් දෙස බැලීමට අවශ්‍ය නොවේ. ඔබ කාර්යබහුල කේතීකරණයේ යෙදී සිටියදී සම්පාදනයේ දෝෂ IDE හි රතු පැහැ රේඛාවක් සමඟ කෙලින්ම වාර්තා වේ. සියල්ලට ම, මෙය ජාවාස්ක්‍රිප්ට් සමඟ වැඩ කිරීමට සාපේක්ෂව tivity ලදායිතාවයේ සැලකිය යුතු ලාභයක් ලබා ගැනීමට ඉඩ සලසයි. කෙනෙකුට වැඩි කාලයක් කේතීකරණය හා අඩු නිදොස් කිරීම සඳහා ගත කළ හැකිය.

විෂුවල් ස්ටුඩියෝ කෝඩ්, වෙබ්ස්ටෝම්, ඇටෝම් සහ සබ්ලයිම් වැනි ටයිප්ස්ක්‍රිප්ට් සඳහා විශිෂ්ට සහයෝගයක් ඇති පුළුල් පරාසයක IDEs ඇත.

දැඩි ශූන්‍ය චෙක්පත්

පෝරමයේ ධාවන දෝෂ cannot read property 'x' of undefinedහෝ undefined is not a functionජාවාස්ක්‍රිප්ට් කේතයේ දෝෂ නිසා බහුලව සිදු වේ. ටයිප්ස්ක්‍රිප්ට් සම්පාදකයාට නොදන්නා විචල්‍යයක් භාවිතා කළ නොහැකි බැවින් ( anyටයිප් කළ විචල්‍යයන්ගේ ගුණාංග හැර) ටයිප්ස්ක්‍රිප්ට් මේ ආකාරයේ දෝෂ ඇතිවීමේ සම්භාවිතාව දැනටමත් අඩු කරයි . සකසා ඇති විචල්‍යයක් වැරදියට භාවිතා කිරීමට තවමත් හැකි ය undefined. කෙසේ වෙතත්, ටයිප්ස්ක්‍රිප්ට් හි 2.0 අනුවාදය සමඟ ඔබට මේ ආකාරයේ දෝෂ සියල්ලම එකවරම ඉවත් කළ හැකිය. මෙය පහත පරිදි ක්‍රියාත්මක වේ:

දැඩි ශූන්‍ය චෙක්පත් සක්‍රීය කර ඇති විට ( --strictNullChecksසම්පාදක ධජය) ටයිප්ස්ක්‍රිප්ට් සම්පාදකයා undefinedවිචල්‍යයකට පැවරීමට ඉඩ නොදෙනු ඇත. උදාහරණයක් ලෙස, let x : number = undefinedසම්පාදක දෝෂයක් ඇති වේ. undefinedඅංකයක් නොවන බැවින් මෙය වර්ග න්‍යායට හොඳින් ගැලපේ . එක් කළ හැකි ය xක මුදලක් වර්ගය විය numberහා undefinedමෙම නිවැරදි කිරීමට: let x : number | undefined = undefined.

වර්ගයක් අහෝසි කළ හැකි බව දැනගත් පසු, එයින් අදහස් වන්නේ එය වටිනාකමක් ඇති වර්ගයක් nullහෝ undefined, ඔබේ කේතයට ආරක්ෂිතව විචල්‍යයක් භාවිතා කළ හැකිද නැද්ද යන්න පාලක ප්‍රවාහ පදනම් කරගත් විශ්ලේෂණයන් මගින් ටයිප්ස්ක්‍රිප්ට් සම්පාදකයාට තීරණය කළ හැකිය. වෙනත් වචන වලින් කිවහොත්, ඔබ විචල්‍යයක් පරික්ෂා කරන විට undefinedනිදසුනක් ලෙස ifටයිප්ස්ක්‍රිප්ට් සම්පාදකයා විසින් ඔබේ කේතයේ පාලන ප්‍රවාහයේ එම ශාඛාවේ වර්ගය තවදුරටත් අහෝසි නොවන බවත් එය ආරක්ෂිතව භාවිතා කළ හැකි බවත් අනුමාන කරයි. මෙන්න සරල උදාහරණයක්:

let x: number | undefined;
if (x !== undefined) x += 1; // this line will compile, because x is checked.
x += 1; // this line will fail compilation, because x might be undefined.

ටයිප්ස්ක්‍රිප්ට් හි සම-නිර්මාණකරු ඇන්ඩර්ස් හෙජල්ස්බර්ග් විසින් මෙම අංගය පිළිබඳ සවිස්තරාත්මක පැහැදිලි කිරීමක් සහ නිරූපණයක් ලබා දෙන ලදී: වීඩියෝව (44:30 සිට 56:30 දක්වා).

සම්පාදනය

ටයිප්ස්ක්‍රිප්ට් භාවිතා කිරීමට ඔබට ජාවාස්ක්‍රිප්ට් කේතයට සම්පාදනය කිරීම සඳහා ගොඩනැගීමේ ක්‍රියාවලියක් අවශ්‍ය වේ. ඔබේ ව්‍යාපෘතියේ ප්‍රමාණය මත පදනම්ව ගොඩනැගීමේ ක්‍රියාවලිය සාමාන්‍යයෙන් ගත වන්නේ තත්පර කිහිපයක් පමණි. ටයිප්ස්ක්‍රිප්ට් සම්පාදකයා වර්ධක සම්පාදනයට ( --watchසම්පාදක ධජය) සහය දක්වයි, එවිට සියලු පසු වෙනස්වීම් වැඩි වේගයකින් සම්පාදනය කළ හැකිය.

ටයිප්ස්ක්‍රිප්ට් සම්පාදකයාට ජනනය කරන ලද .js ලිපිගොනු වල ප්‍රභව සිතියම් තොරතුරු පේළිගත කිරීමට හෝ වෙනම .map ගොනු සෑදිය හැකිය. ජාවාස්ක්‍රිප්ට් හි ඇති රේඛා ටයිප්ස්ක්‍රිප්ට් තුළ ජනනය කළ ඒවාට සම්බන්ධ කිරීම සඳහා ක්‍රෝම් ඩිව්ටූල්ස් සහ වෙනත් අයිඩීඊ වැනි උපයෝගීතා නිදොස් කිරීම මඟින් ප්‍රභව සිතියම් තොරතුරු භාවිතා කළ හැකිය. මෙමඟින් ඔබේ ටයිප්ස්ක්‍රිප්ට් කේතය මත සෘජුවම ධාවන වේලාවන්හි බ්‍රේක්පොයින්ට් සැකසීමට සහ විචල්‍යයන් පරීක්ෂා කිරීමට ඔබට හැකි වේ. ප්‍රභව සිතියම් තොරතුරු ඉතා හොඳින් ක්‍රියාත්මක වේ, එය ටයිප්ස්ක්‍රිප්ටයට බොහෝ කලකට පෙරය, නමුත් ටයිප්ස්ක්‍රිප්ට් නිදොස් කිරීම ජාවාස්ක්‍රිප්ට් කෙලින්ම භාවිතා කරන විට තරම් විශාල නොවේ. thisඋදාහරණයක් ලෙස මූල පදය ගන්න . thisES2015 සිට වසා දැමීම් වටා ඇති යතුරු පදයේ වෙනස් වූ අර්ථකථන හේතුවෙන් , ක්‍රියාකාරී වේලාවේදී thisවිචල්‍යයක් ලෙස හැඳින්විය හැක _this( මෙම පිළිතුර බලන්න). නිදොස්කරණය කිරීමේදී මෙය ඔබව ව්‍යාකූල කළ හැකි නමුත් සාමාන්‍යයෙන් ඔබ ඒ ගැන දන්නේ නම් හෝ ජාවාස්ක්‍රිප්ට් කේතය පරීක්ෂා කරන්නේ නම් ගැටළුවක් නොවේ. බාබෙල් එකම ආකාරයේ ගැටලුවකට මුහුණ දෙන බව සැලකිල්ලට ගත යුතුය.

ටයිප්ස්ක්‍රිප්ට් සම්පාදකයාට කළ හැකි තවත් උපක්‍රම කිහිපයක් තිබේ, ඒවා නම් සැරසිලි කරුවන් මත පදනම් වූ කේත ජනනය කිරීම, විවිධ මොඩියුල පද්ධති සඳහා මොඩියුලය පැටවීමේ කේතය ජනනය කිරීම සහ ජේඑස්එක්ස් විග්‍රහ කිරීම ය . කෙසේ වෙතත්, ඔබට ටයිප්ස්ක්‍රිප්ට් සම්පාදකයාට අමතරව ගොඩනැගීමේ මෙවලමක් අවශ්‍ය වනු ඇත. උදාහරණයක් ලෙස, ඔබට ඔබේ කේතය සම්පීඩනය කිරීමට අවශ්‍ය නම්, එසේ කිරීම සඳහා ඔබේ ගොඩනැඟීමේ ක්‍රියාවලියට වෙනත් මෙවලම් එකතු කිරීමට සිදුවේ.

සඳහා ලබා ගත හැකි TypeScript සම්පාදනය කිරිමේ ප්ලගින ඇත Webpack , ඔවුන්ගේ උගුරෙන් පහළට , සංචිතයකින් සමන්විත වේ.මෙම හා එච්චරමයි අතන වෙනත් ඕනෑම ජාවාස්ක්රිප්ට් ගොඩ නැඟීමට මෙවලමක්. ටයිප්ස්ක්‍රිප්ට් ප්‍රලේඛනයට ඒවා සියල්ලම ආවරණය වන පරිදි ගොඩනැඟීමේ මෙවලම් සමඟ ඒකාබද්ධ කිරීම පිළිබඳ අංශයක් ඇත . ඒ linter ඔබ ඊටත් වඩා ගොඩ නැඟීමට කාලය පරීක්ෂා කිරීම කැමතියි නඩුව ද ඇත. කෝණික 2, ප්‍රතික්‍රියා, එම්බර්, සිස්ටම් ජේඑස්, වෙබ් පැක්, ගල්ප් වැනි වෙනත් තාක්ෂණයන් සමඟ ඒකාබද්ධව ටයිප්ස්ක්‍රිප්ට් සමඟ ආරම්භ කිරීමට ඔබට හැකි බීජ ව්‍යාපෘති විශාල ප්‍රමාණයක් ඇත.

ජාවාස්ක්‍රිප්ට් අන්තර් ක්‍රියාකාරිත්වය

ටයිප්ස්ක්‍රිප්ට් ජාවාස්ක්‍රිප්ට් සමඟ ඉතා සමීපව සම්බන්ධ වී ඇති හෙයින් එයට විශාල අන්තර් ක්‍රියාකාරී හැකියාවන් ඇත, නමුත් ටයිප්ස්ක්‍රිප්ට්හි ජාවාස්ක්‍රිප්ට් පුස්තකාල සමඟ වැඩ කිරීමට අමතර වැඩ කිහිපයක් අවශ්‍ය වේ. TypeScript අර්ථ දැක්වීම් ද TypeScript සම්පාදක වැනි එම කාර්යය ඇමතුම් අවබෝධකරගත් නිසා අවශ්ය _.groupByහෝ angular.copyහෝ $.fadeOutඇත්ත නීති විරෝධී ප්රකාශ නොවේ. මෙම කාර්යයන් සඳහා අර්ථ දැක්වීම් .d.tsගොනු තුළ තබා ඇත .

අර්ථ දැක්වීමකට ගත හැකි සරලම ආකාරය නම් හඳුනාගැනීමක් ඕනෑම ආකාරයකින් භාවිතා කිරීමට ඉඩ දීමයි. උදාහරණයක් ලෙස, ලොඩාෂ් භාවිතා කරන විට , තනි පේළි අර්ථ දැක්වීමේ ගොනුවක් declare var _ : anyඔබට අවශ්‍ය ඕනෑම ශ්‍රිතයක් ඇමතීමට ඉඩ දෙයි _, නමුත් ඇත්ත වශයෙන්ම, ඔබට තවමත් වැරදි _.foobar()කිරීමට හැකිය : නෛතික ටයිප්ස්ක්‍රිප්ට් ඇමතුමක් වනු ඇත, නමුත් ඇත්ත වශයෙන්ම , ක්‍රියාත්මක වන වේලාවට නීති විරෝධී ඇමතුමක්. ඔබට නිසි ආකාරයේ සහය සහ කේත සම්පුර්ණ කිරීමට අවශ්‍ය නම් ඔබේ අර්ථ දැක්වීමේ ගොනුව වඩාත් නිවැරදි විය යුතුය ( උදාහරණයක් සඳහා ලොඩාෂ් අර්ථ දැක්වීම් බලන්න).

ටයිප්ස්ක්‍රිප්ට් සම්පාදකයා විසින් ස්වකීය වර්ගයේ අර්ථ දැක්වීම් සමඟ පෙර ඇසුරුම් කර ඇති එන්පීඑම් මොඩියුල ස්වයංක්‍රීයව වටහා ගනු ලැබේ ( ප්‍රලේඛනය බලන්න ). තමන්ගේම නිර්වචන ඇතුළත් නොවන වෙනත් අර්ධ ජනප්‍රිය ජාවාස්ක්‍රිප්ට් පුස්තකාලයක් සඳහා එහි සිටින කවුරුහරි දැනටමත් වෙනත් එන්පීඑම් මොඩියුලයක් හරහා වර්ග අර්ථ දැක්වීම් ලබා දී ඇත. මෙම මොඩියුල "@ වර්ග /" උපසර්ගය හා නමින් Github ගබඩාව සිට පැමිණ සිටිති DefinitelyTyped .

එක් අවවාදයක් ඇත: වර්ගය අර්ථ දැක්වීම් ඔබ ක්‍රියාත්මක වන වේලාවේ භාවිතා කරන පුස්තකාලයේ අනුවාදයට අනුරූප විය යුතුය. ඒවා එසේ නොවේ නම්, ටයිප්ස්ක්‍රිප්ට් මඟින් ඔබට ශ්‍රිතයක් ඇමතීමට හෝ පවතින විචල්‍යයක් අවලංගු කිරීමට ඉඩ නොදේ. එසේ නැතහොත් ශ්‍රිතයක් ඇමතීමට හෝ නොපවතින විචල්‍යයක් අවලංගු කිරීමට ඉඩ දෙනු ඇත. . එබැවින් ඔබ භාවිතා කරන පුස්තකාලයේ නිවැරදි අනුවාදය සඳහා වර්ග අර්ථ දැක්වීම්වල නිවැරදි අනුවාදය පටවන බවට වග බලා ගන්න.

ඇත්තම කිව්වොත්, මේ සඳහා සුළු කරදරයක් ඇති අතර එය ඔබ ටයිප්ස්ක්‍රිප්ට් තෝරා නොගැනීමට එක් හේතුවක් විය හැකිය, නමුත් ඒ වෙනුවට වර්ග අර්ථ දැක්වීම් ලබා ගැනීමෙන් පීඩා විඳින්නේ නැති බාබෙල් වැනි දෙයක් සඳහා යන්න. අනෙක් අතට, ඔබ කරන්නේ කුමක්දැයි ඔබ දන්නේ නම් වැරදි හෝ නැතිවූ අර්ථ දැක්වීම් ලිපිගොනු නිසා ඇති වන ඕනෑම ගැටළුවක් පහසුවෙන් ජය ගත හැකිය.

ජාවාස්ක්‍රිප්ට් සිට ටයිප්ස්ක්‍රිප්ට් බවට පරිවර්තනය කිරීම

ඕනෑම .jsගොනුවක් ගොනුවකට නැවත නම් කළ හැකි අතර එය .tsජාවාස්ක්‍රිප්ට් කේතය ප්‍රතිදානයක් ලෙස ලබා ගැනීමට ටයිප්ස්ක්‍රිප්ට් සම්පාදකය හරහා ධාවනය කළ හැකිය (එය මුලින් කෘතිමව නිවැරදි නම්). ටයිප්ස්ක්‍රිප්ට් සම්පාදකයාට සම්පාදක දෝෂ ඇති වූ විට පවා එය .jsගොනුවක් නිපදවනු ඇත . ධජය .jsසමඟ ලිපිගොනු ආදානය ලෙස පවා එයට පිළිගත හැකිය --allowJs. මෙය ඔබට වහාම ටයිප්ස්ක්‍රිප්ට් සමඟ ආරම්භ කිරීමට ඉඩ දෙයි. අවාසනාවකට මෙන්, සම්පාදක දෝෂ ආරම්භයේදීම සිදුවිය හැකිය. මේවා වෙනත් සම්පාදකයින් සමඟ ඔබ පුරුදු වී ඇති ආකාරයට පෙන්වීම නැවැත්වීමේ දෝෂ නොවන බව යමෙකුට මතක තබා ගත යුතුය.

ජාවාස්ක්‍රිප්ට් ව්‍යාපෘතියක් ටයිප්ස්ක්‍රිප්ට් ව්‍යාපෘතියක් බවට පරිවර්තනය කිරීමේදී ආරම්භයේ දී කෙනෙකුට සම්පාදනය කිරීමේ දෝෂයන් ටයිප්ස්ක්‍රිප්ට් ස්වභාවය අනුව වැළැක්විය නොහැක. ටයිප්ස්ක්‍රිප්ට් වලංගුභාවය සඳහා සියලු කේත පරික්ෂා කරන අතර එමඟින් එය භාවිතා කරන සියලුම කාර්යයන් සහ විචල්‍යයන් ගැන දැනගත යුතුය. මේ අනුව වර්ග නිර්වචන ඒ සියල්ලටම ක්‍රියාත්මක විය යුතුය. එසේ නොමැතිනම් සම්පාදක දෝෂ ඇතිවිය හැකිය. ඉහත පරිච්ඡේදයේ සඳහන් කර ඇති පරිදි, ඕනෑම ජාවාස්ක්‍රිප්ට් රාමුවක් .d.tsසඳහා නිසැකවම ටයිප් කළ පැකේජ ස්ථාපනය කිරීමෙන් පහසුවෙන් ලබා ගත හැකි ලිපිගොනු ඇත.. කෙසේ වෙතත්, ඔබ ටයිප්ස්ක්‍රිප්ට් නිර්වචන නොමැති සමහර අපැහැදිලි පුස්තකාලයක් භාවිතා කර තිබීම හෝ ඔබ ජාවාස්ක්‍රිප්ට් ප්‍රාථමිකයන් කිහිපයක් පුරවා තිබීම විය හැකිය. එවැනි අවස්ථාවකදී, සම්පාදන දෝෂ අතුරුදහන් වීම සඳහා ඔබ මෙම බිටු සඳහා වර්ග අර්ථ දැක්වීම් සැපයිය යුතුය. .d.tsගොනුවක් සාදා එය tsconfig.json හි filesඅරාවෙහි ඇතුළත් කරන්න, එවිට එය සැමවිටම ටයිප්ස්ක්‍රිප්ට් සම්පාදකයා විසින් සලකනු ලැබේ. එහි ටයිප්ස්ක්‍රිප්ට් වර්ගය ලෙස නොදන්නා බිටු ප්‍රකාශ කරයි any. ඔබ සියලු දෝෂ ඉවත් කළ පසු ඔබේ අවශ්‍යතා අනුව ක්‍රමයෙන් එම කොටස් ටයිප් කිරීම හඳුන්වා දිය හැකිය.

ටයිප්ස්ක්‍රිප්ට් බිල්ඩ් නල මාර්ගයට ලබා ගැනීම සඳහා ඔබේ ගොඩනැගීමේ නල මාර්ගය වින්‍යාස කිරීමේ (නැවත) සමහර වැඩක් අවශ්‍ය වේ. සම්පාදනය පිළිබඳ පරිච්ඡේදයේ සඳහන් කර ඇති පරිදි එහි හොඳ සම්පත් ඕනෑ තරම් ඇති අතර ඔබ සමඟ වැඩ කිරීමට අවශ්‍ය මෙවලම් සංයෝජනය භාවිතා කරන බීජ ව්‍යාපෘති සොයා බැලීමට මම ඔබව දිරිමත් කරමි.

ලොකුම බාධකය වන්නේ ඉගෙනීමේ වක්‍රයයි. මුලදී කුඩා ව්‍යාපෘතියක් සමඟ සෙල්ලම් කිරීමට මම ඔබව දිරිමත් කරමි. එය ක්‍රියාත්මක වන ආකාරය, එය සාදන ආකාරය, එය භාවිතා කරන ගොනු, එය වින්‍යාසගත කර ඇති ආකාරය, එය ඔබගේ IDE තුළ ක්‍රියාත්මක වන ආකාරය, එය ව්‍යුහගත කර ඇති ආකාරය, එය භාවිතා කරන මෙවලම් ආදිය බලන්න. විශාල ජාවාස්ක්‍රිප්ට් කේත පදනමක් ටයිප්ස්ක්‍රිප්ට් බවට පරිවර්තනය කිරීම ඔබ දන්නා විට කළ හැකිය. ඔබ කරන්නේ කුමක්ද? පැය 72 කින් 600k පේළි යතුරු ලියනය බවට පරිවර්තනය කිරීම සඳහා මෙම බ්ලොගය කියවන්න ). ඔබ පැනීමට පෙර භාෂාව පිළිබඳ මනා අවබෝධයක් ඇති බවට වග බලා ගන්න.

දරුකමට හදා ගැනීම

ටයිප්ස්ක්‍රිප්ට් විවෘත මූලාශ්‍රයකි (අපාචේ 2 බලපත්‍රලත්, ගිට්හබ් බලන්න ) සහ මයික්‍රොසොෆ්ට් හි සහාය ඇත. සී # හි ප්‍රධාන ගෘහ නිර්මාණ ශිල්පී ඇන්ඩර්ස් හෙජ්ල්ස්බර්ග් මෙම ව්‍යාපෘතියේ මූලිකත්වය ගෙන කටයුතු කරයි. එය ඉතා ක්‍රියාකාරී ව්‍යාපෘතියකි; ටයිප්ස්ක්‍රිප්ට් කණ්ඩායම පසුගිය වසර කිහිපය තුළ නව විශේෂාංග රාශියක් නිකුත් කර ඇති අතර විශාල ඒවා තවමත් පැමිණීමට සැලසුම් කර ඇත ( මාර්ග සිතියම බලන්න ).

දරුකමට හදා ගැනීම සහ ජනප්‍රියත්වය පිළිබඳ කරුණු කිහිපයක්:

  • තුළ 2017 StackOverflow සංවර්ධක සමීක්ෂණය TypeScript වඩාත්ම ජනප්රිය JavaScript transpiler (සමස්ත 9 ස්ථානය) වූ අතර වඩාත් ආදරය කළ ක්රමලේඛන භාෂාව ප්රවර්ගය තෙවන ස්ථානය දිනා ගැනීමට සමත් විය.
  • තුළ JS වල 2018 රාජ්ය සමීක්ෂණය TypeScript (ES6 ලැබූ තවත් සමග) JavaScript රස අංශයේ විශාල ජයග්රාහකයින් දෙදෙනෙකු එකක් ලෙස ප්රකාශයට පත් කරන ලදි.
  • තුළ 2019 StackOverlow deverloper සමීක්ෂණය TypeScript C සහ C ++ යන දෙකම අභිබවා, වෘත්තීය සංවර්ධනය අතර වඩාත් ජනප්රිය භාෂා 9 වැනි ස්ථානය දක්වා වර්ධනය වී තිබේ. වඩාත්ම ප්‍රිය කරන භාෂා අතර එය නැවතත් තෙවන ස්ථානයට පත්විය.

27
"ජාවාස්ක්‍රිප්ට් කේතය වලංගු ටයිප්ස්ක්‍රිප්ට් කේතය" - මෙය ඇත්ත වශයෙන්ම සැමවිටම සත්‍ය නොවේ. මම අදහස් කළේ කේතය (1 === '1') {T ඔබට TS හි දෝෂයක් ලබා දෙන අතර JS හි එසේ නොවේ. නමුත් බොහෝ විට, JS කේතය හොඳින් ලියා ඇත්නම් එය සත්‍යයකි.
මැකීජ් බුකොව්ස්කි

3
අතුරුදහන් වූ අර්ධ බඩවැලක් නිසා ඔබේ වටිනා tive ලදායී කාලය ඔබට අහිමි වී ඇත්නම්, යතුරු ලියනයෙහි ලිවීම ජීවිතාරක්ෂකයෙකි.
සොසුෆි

3
යතුරු ලියනය කිරීම් අතහැර දමා ඇති අතර වර්තමාන හොඳම ක්‍රමය වන්නේ npm(හෝ yarn) පමණි install @types/foo. ඔබේ පිළිතුර යාවත්කාලීන කළ හැකිද?
ජෙඩ් ෆොක්ස්

13
TL; DR මෙම පිළිතුරෙන්
සුරැකෙනු ඇත

8
@MaciejBukowski මෙම නඩුවේදී ටයිප්ස්ක්‍රිප්ට් ඇත්ත වශයෙන්ම පැමිණිලි කළත්, ඔබට තවමත් වලංගු JS ප්‍රතිදානයක් ලැබෙනු ඇත (එය ඔබ ටයිප්ස්ක්‍රිප්ට් සමඟ සම්පාදනය කළ / සම්ප්‍රේෂණය කළ JS කේතය වනු ඇත). එබැවින් එය "දෝෂයක් සමඟ සම්පාදනය කිරීම" මිස අවලංගු ටයිප්ස්ක්‍රිප්ට් නොවේ. ඕනෑම වලංගු JS කේතයක් වලංගු TS කේතයක් විය යුතු බව ටයිප්ස්ක්‍රිප්ට් පිරිවිතරයේ ලියා ඇත.
පැක් 0

84

ටයිප්ස්ක්‍රිප්ට් CSS සඳහා අඩු හෝ සාස් කරන දේට සමාන දෙයක් කරයි. ඒවා එහි සුපිරි කට්ටල වන අතර එයින් අදහස් වන්නේ ඔබ ලියන සෑම JS කේතයක්ම වලංගු ටයිප්ස්ක්‍රිප්ට් කේත බවයි. ප්ලස් ඔබට එය භාෂාවට එකතු කරන වෙනත් හොඳ දේවල් භාවිතා කළ හැකි අතර සම්ප්‍රේෂණය කළ කේතය වලංගු js වේ. ඔබේ ප්‍රති code ල කේතය ක්‍රියාත්මක කිරීමට අවශ්‍ය JS අනුවාදය පවා ඔබට සැකසිය හැකිය.

වර්තමානයේ ටයිප්ස්ක්‍රිප්ට් යනු ES2015 හි සුපිරි කට්ටලයකි, එබැවින් නව js විශේෂාංග ඉගෙනීම ආරම්භ කිරීමට සහ ඔබේ ව්‍යාපෘතිය සඳහා අවශ්‍ය ප්‍රමිතියට සම්ප්‍රේෂණය කිරීමට හොඳ තේරීමක් විය හැකිය.


4
හොඳම ටීඑල්; ඩීආර් යනු ටීඑස්ගේ පිටුවයි: "ටයිප්ස්ක්‍රිප්ට් යනු ජාවාස්ක්‍රිප්ට් හි යතුරු ලියනය කරන ලද සුපර්සෙට් එකක් වන අතර එය සරල ජාවාස්ක්‍රිප්ට් සමඟ සම්පාදනය කරයි."
ජුවාන් මෙන්ඩිස්

1
එය "මම එය භාවිතා කළ යුත්තේ ඇයි" යන්නට පිළිතුරු සපයන්නේ නැත. මෙහි tl; dr වනුයේ: 1) ජාවාස්ක්‍රිප්ට් වෙත විකල්ප ස්ථිතික වර්ග එකතු කිරීම. සම්පාදනය කරන වේලාවේදී දෝෂ හඳුනා ගැනීමට සහ ඔබේ වැඩසටහන වඩා හොඳින් ලේඛනගත කිරීමට වර්ග උදව් වේ. 2) ඔබට නව ජාවාස්ක්‍රිප්ට් (ES6 / ES7 / ESnext) ලිවිය හැකි අතර එය පැරණි බ්‍රව්සර් සඳහා සහය දැක්වීමට අවශ්‍ය ES5 වෙත නැවත සම්පාදනය කළ හැකිය; ටීඑල් එකකට වඩා උනන්දුවක් දක්වන අය සඳහා මම tsmean.com/articles/vs/typescript-vs-javascript හි තව ටිකක් විස්තර කර ඇත්තෙමි . Dr
bersling

1
"සම්ප්‍රේෂණය කළ කේතය වලංගු JS වනු ඇත" - ඔබ මගෙන් ඇසුවොත් එය ටයිප්ස්ක්‍රිප්ට්හි අචිලස් විලුඹයි. එයින් අදහස් කරන්නේ ඔවුන්ට JS වෙත ඉතා ප්‍රයෝජනවත් අංග කිහිපයක් එකතු කළ නොහැකි බවයි; වඩාත් කැපී පෙනෙන ලෙස ධාවන කාල වර්ග පරීක්ෂා කිරීම. I / O වෙතින් කියවන ඕනෑම ධාවන කාල දත්ත සඳහා එය නැති කර ගැනීම සඳහා පමණක් සම්පාදක-කාල ආකාරයේ ආරක්ෂාව තිබීම තරමක් කරදරකාරී වේ, නැතහොත් ඔබේ සම්ප්‍රේෂණය කළ කේතය වෙනත් JS වෙතින් අනාරක්ෂිත ලෙස හැඳින්වේ.
ජෙස්

44

" ටයිප්ස්ක්‍රිප්ට් මූලධර්ම " - ඩෑන් වෝලින් සහ ජෝන් පැපා විසින් කරන ලද බහුවිධ වීඩියෝ පා course මාලාවක් ඇත්තෙන්ම හොඳයි, වර්තමානයේ (2016 මාර්තු 25) ටයිප්ස්ක්‍රිප්ට් 1.8 පිළිබිඹු කිරීම සඳහා යාවත්කාලීන කර ඇත.

මට නම් හොඳ ලක්ෂණ, ඉන්ටෙලිසෙන්ස් සඳහා ඇති හොඳ හැකියාවන් හැරුණු විට, පන්ති , අතුරුමුහුණත් , මොඩියුල , AMD ක්‍රියාත්මක කිරීමේ පහසුව සහ IE සමඟ ආයාචනා කරන විට විෂුවල් ස්ටුඩියෝ ටයිප්ස්ක්‍රිප්ට් නිදොස්කරණය භාවිතා කිරීමේ හැකියාව.

සාරාංශගත කිරීම සඳහා : ටයිප්ස්ක්‍රිප්ට් මඟින් ජාවාස්ක්‍රිප්ට් ක්‍රමලේඛනය වඩාත් විශ්වාසදායක සහ පහසු කළ හැකිය. පූර්ණ SDLC වලට වඩා ජාවාස්ක්‍රිප්ට් ක්‍රමලේඛකයාගේ tivity ලදායිතාව සැලකිය යුතු ලෙස වැඩි කළ හැකිය.


9
SDLC යනු කුමක්ද? AMD?
ඕඕගි

15
Oooooogi, SDLC == මෘදුකාංග සංවර්ධන ජීවන චක්‍රය. AMD == අසමමුහුර්ත මොඩියුල අර්ථ දැක්වීම. දෙවැන්න ජාවාස්ක්‍රිප්ට් සඳහා විශේෂිත වන අතර, කලින් සඳහන් කළ විෂය පථය තරමක් සාමාන්‍ය ය.
ඩිමිට්‍රේ නොවාචෙව්

2
"AMD ක්‍රියාත්මක කිරීමේ පහසුව, ..." - මම එය කියවා එය කිසියම් ත්‍රෙඩ් රිපර් ප්‍රශස්තිකරණයක් හෝ යමක් යැයි සිතුවෙමි.
jrh

16

සියලුම බ්‍රව්සර සහාය සහ පෙර සැකසූ එක්මා ස්ක්‍රිප්ට් 5 (ඊඑස් 5). ES6 / ES2015 සහ ES / 2016 මේ වසරේ බොහෝ වෙනස්කම් ඇති කර ඇති අතර එමඟින් මෙම වෙනස්කම් උත්පතන කිරීම සඳහා ටයිප්ස්ක්‍රිප්ට් ගැන සැලකිලිමත් විය යුතු යමක් තිබේ.

S ටයිප්ස්ක්‍රිප්ට් යනු වර්ග -> ක්‍රම යනු එක් එක් දේපල හා ක්‍රමවේදයන්හි දත්ත සමුදාය නිර්වචනය කිරීමයි. ඔබ C # දන්නේ නම් යතුරු ලියනය තේරුම් ගැනීම පහසුය.

Type ටයිප්ස්ක්‍රිප්ට්හි විශාල වාසියක් වන්නේ අප අනන්‍යතාවය නිෂ්පාදනයට යාමට පෙර ගැටළු සම්බන්ධ කිරීමයි. කිසියම් ආකාරයක නොගැලපීමක් තිබේ නම් ඒකක පරීක්ෂණ අසමත් වීමට මෙය ඉඩ දෙයි.


2
එය සෑම වසරකම නොවේ
මිතුරනි

... සහ, එම වෙනස්කම් ඔබට මයික්‍රොසොෆ්ට් හි ඇඟිලි ලබා ගැනීම සමඟ සහසම්බන්ධ විය හැකිය. ;-)
ට්‍රොබර්

2
Ub සුභම් ට්රිපති එය සෑම වසරකම බොහෝ දේ වේ . ES2015, ES2016, ES2017, සහ දැන් සිට භාෂාව මිය යන තෙක්. එය 2015 ට පෙර සෑම වසරකම නොවේ , නමුත් එය දැන් ය. වැඩිදුර දැන ගැනීම සඳහා "TC39 ක්‍රියාවලිය" සඳහා සොයන්න.
daemonexmachina

1
ජාවාස්ක්‍රිප්ට් ප්‍රජාව තුළ වර්ග පරීක්ෂා කිරීම සඳහා විශාල ඉල්ලුමක් තිබේද? වර්ගය පරීක්ෂා කිරීම හා සම්බන්ධ බොහෝ දෝෂ මා සතුව නොමැත.
බොක්ස් සහ කොක්ස්

"ඔබ C # දන්නේ නම් යතුරු ලියනය තේරුම් ගැනීම පහසුය." සහ ස්විෆ්ට්!
GalaxyCat105
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.