新程序员的 TypeScript

祝贺您选择 TypeScript 作为您的首选语言之一——您已经做出了正确的决定!

您可能已经听说 TypeScript 是 JavaScript 的 "flavor" 或 "variant"。TypeScript (TS) 和 JavaScript (JS) 之间的关系在现代编程语言中相当独特,因此更多地了解这种关系将有助于您了解 TypeScript 如何添加到 JavaScript 中。

什么是 JavaScript?一个简短的历史

JavaScript(也称为 ECMAScript)最初是一种用于浏览器的简单脚本语言。在它被发明的时候,它被期望用于嵌入网页的短代码片段——编写超过几十行的代码有点不寻常。因此,早期的网络浏览器执行此类代码的速度非常慢。不过,随着时间的推移,JS 变得越来越流行,Web 开发人员开始使用它来创建交互式体验。

Web 浏览器开发人员通过优化他们的执行引擎(动态编译)和扩展它的功能(添加 API)来应对 JS 使用的增加,这反过来又使 Web 开发人员更多地使用它。在现代网站上,您的浏览器经常运行跨越数十万行代码的应用程序。这是 "the web" 漫长而渐进的成长过程,从一个简单的静态页面网络开始,逐渐演变成一个包含各种丰富应用程序的平台。

不仅如此,JS 已经变得足够流行,可以在浏览器上下文之外使用,例如使用 node.js 实现 JS 服务器。JS 的 "run anywhere" 特性使其成为跨平台开发的有吸引力的选择。现在有很多开发人员只使用 JavaScript 来编写他们的整个堆栈!

sk9bWU7Kd3BokB5Y8J0Obga/RLrgPPYRUXO9nR2pCoHRj4i8zlcaNQNgW7sBrpfO+5lq0szH4DEBAb45hmg42qHCcj62dIwu1Q4AB+l5WFdRaLRyQG/3suIGFrJK0xtU/k4OgEOW6Ctw/bGA2EZu1ZT73p5HDh3kYKd+yCFNVzgOcdV4JX3kATXz/Sl6FEKO4aSOk7RC+EIvG8f3P6rHECa3Jp8N3cRSuNLW/txZetOQdPS4/CsdlushtUW/im9kRD5r/7Bpr+fzQwA8Nf2twY5KyWr9ZAe5DCT3M6Vp0doOsJI/J1nIr4FWZEcw0/6i+E0msgpcvLmRT6OLL3P5qK4Xg/ArVcK3yQf+EwzRibgfw9ZVdOhtSL+PiomKAAiY2j6an95e6XvjMlY25uMciA==

    jj5ODCvAC4zBa3fKv/MyeP6uUFZ95jRKj5zWjKSj5iLwZVmPrPOPU2tZBC5jf9WasF/FVcBHCijo18FM5WLoAY2veBWVQVykPRBQCBcUFrxWzX93cEpgJCN8fbwW8JCoU38qTurb8xCX8N7KyRmeV6BNIxEI+RCan8IMYzyaur7KO3Fd2K6PedCZ03aYsb0x19oBp2kTRJiHuCY9j1z4bo/9SMg2zDXaBRK9tus01zXNJLc9XBvBWldxWt1ZvMNdwbmNrnz4GBZajb+NW03zKlK5JOPbs859tOX2fFLlrfr2qX4WWTEUKb8kl3CgkwwAXb6/vaFkOE0Y7KSshruyoYpn46tIE4e49aBAxI/6aMORFT/VsBG6uc4mbaNqaeYY9vnO+3hF7kkzjLXPghhbUeQMIV1Xo1ZMqt6RmkFcSBUzpTkyRwXw9+KJcUhf9wX1UUUb8NqEYjqSz3hvSb//iUpZuJFehD1yMzjKcwLiN4EAmec9oEwJ5JrHk62pueU88HFAjTnTVYxyRwTjnI8uAST9777ygvuIQUR/5Ekt9AAYV+6kUrwT+F4DaD6lN+Bi8EgMhhZ2MCI5l/hrfovS2l+OsOphjHFMcoFEF1/xaJfHpu8uPaRG7pAoeupn9DBM

/+kWZTfo6WEDiSfNpftbnopDMZ32qRJB8itB6avST/ka/WcaWpfxFdPHy5mdPGoZPmCS4iYbvEd9Bt3FtrkOUlrXgVm45sNp+fBuiAb7KHSCFO4J24Nf+NwDiZTUcptuddFulaX5GYJvLy9tRSeFqSfkwvBaKpR82GdzMGYOjMK13VoWaIT8yVEhHnQWbbBizLXLbaTeQwgpcwF/p5ooRD2PwECfgNr6XQieB6DE16XQqeFSjHQ1EGdzqFCmh27cc2UCPrVcCOfql4yuvw16c9wfh5KzBS7Z9YT2Lb+PR7MK0FDkT0u8fE32iUx5QeNjREOuMixlXtTMMdlPYRxIvxGKNtoDb7LMflCaddnf+7uZXrha9eyJrVgL+vqIvhAB9ejTOzlQTLu3IFJj83chVXBe4vvML6N5RGQqFnZ0NcU=

TypeScript:静态类型检查器

0l/ZRD8EBvm76f22lzMrk/YH0Y9LMKdO6O/TyVfKEzRlQID1sHB9gNQ9C+ydnX5gv2LBygYmPws9+mJOjAw8ik0cmHRcKr/N8/W34b711jMsHdBS971cq+9J4syDF3wjUHZBcDfj275khcuR3Zj5kQexB1VPWKe6WTeFAv5fAviNkbxhgt3wYAg9AoxtTQSLzDJUgBp3RAnp8+X3+aatsNsPaQxKZDkyl5e1fOMrG9sVuEy/lC09tBWUwZGkLKOchz4SJaUym2nMk3bYNdFRW//GF6Qpo+q8kpKiCMfq2uhjOqa5xURlgu4zCuSNSAFgISfqHCc82olhDBnZaTADRTQKe7kVZSzQI2KN6awa700=

yb0ICxyVRHtPNcUf34eql5DQAA9eNzEL57newppWZej2Amg1UaK7APuVipnnYXXZQGG/53x4YquO6PiA/+U56wxbPnLtntyv8qESPeIvXoj9N8CBeZjKstdSGi9udJbu7Y4j4VbVRQz59wyTr13odKVW9cBcP9P7zxCWAHJ9ZIKyv7Umr1iMXRU5aNvzukjapPZq8m0SvyN0AiKxbNzsJbLjVcNUbuWDIzGdsiWaaBfY0/uSK33/zEoa0wkQwhF+9Q9OgCD7rvRE052xpEJN5qAN3YQghmxF9NjqYpmHgNKvQywUQJUXAPBJJugVIYRo3D3dr0cEz/0mnWI+rWuTew==

const obj = { width: 10, height: 15 };
const area = obj.width * obj.heigth;

类型化的 JavaScript 超集

O57ealVKxwNNZ4HjcASQVUIYrYqL899rr0djwZMqXT7+thGSZhSxWLs44kgmSa4U+NHw1zFMTPQhzmrTkUqIkQ==

语法

20GDeKLWhLCAWqlaQF4mwoPwnLr4o6hncrRm8DXPL7YgqECkR+5cGXxJ0L6mUOuHCySoOKNrqiAHhJtzdFA6qMNr68aTTDQ89gL8LCtzs7uKYrck6NLP88Moz6VdFK17W3ciOi0EaP2GPDjPmINip10im0j527xvx7LPDLj8+613pmSgdmc6HcvebG86ukOX8lWUJ0BmZI0H94H+pfXtXSVoS2LOZMKdcaQmB5n3nQG1Q/yrhhYnvXvUaqhPLakL1US+rtY/jVI6cfvz5EHYgWAF3XPbYzSCsBAGUBncKbw=

let a = (4

jDI4FHPwq8NpH0wQBHl27XChESjXndCWTE86BtZ/B9e/klEDZX4BSOspzGjLBDcE5UJVD99ek6QtTTKlxpyqaCGUkAi3Y6oGzM/XLTtPdnFTYEX0PCtLNm0lDGc2GjSVAnm5IW7KLpy1VGL5YnSZLxHY/fC1YBgztRqc9jqVTjDV1r3VzJZuLnmCaLpzdivP8j04nVDm/O/DB/3Pgx4CvYmmZXhD4ShGxL6JNywIs9Sq3c0mli9NoB11mgmGusvbiV3nXNzvFIVGIh0SV9wbmQ==

类型

lAKsetWrsdOBoBLUYFkdvvHyeO4f1G/5FXypxmRPDRknxVpBS480ND1z2ED2+cu7qhf90l4nFN3P16X0eD28tcu0OxPl3yrBx4t0J/QkyMbDmVMJh18tqQADYxW6IKERvTY0hoBixYtIJqJYj6AyphXA+fSGiMsBaZ2SuVbhYc+NvHFxmCRmRk30xHcEi8zF2JE7zYeuq1XJVPJ+QdK9pjMI2QYLpmhV6O41gUm59JXUnbCv5auavvKAZnbOc5U9K+0jqW3jzuxykgrN0BCe2pa/MuI0SZBM6otOnmaOsC/gcVWIeVCETHmKflZFtfKEujQyLgFW/0jU+K+Bkq1fnQ==

qnNwd6Vanzt51Wek96Q1ojH97eqI/K6OKZ+OzsP1sPayg5K2m6D0YXEP/X6/CJfEEun5/WNg0tpbVzIrezfr8PBNsokt9e/1LD0xILJ0jFMysYaWcjkkGTYZ2VycVOUc1F3WXONaF+BcxE/SWIzfrA==

console.log(4 / []);

FjQkdAvviDXD0+RzZdL8tlahuspq08KVPUg8A/1KV+Wl3G70P+WX8icoK50SxGGE6e6iUFRoCCSFtgBaOJ9U9p27fRlq5FScCuuhQsNPCBmO/G5ZvWQqEN1ngy26IeVVuLhi2CcxieR0/YTZhH4/r6jIMcZkJEr/tOuqyA3YU67yt+g5jv8tgG9/D7D5KYjHvp6zNVR3qhRqpVXz2rQA4A==

console.log(4 / []);

juCO1xmYCUjl+S7exMIjMR68ExfBPMk5ikUYuDNGczdaLlNomSJ/QvptCJhu4yeXGvqQsr2W4gEHfMxjRt9cuH5OjTah/Bab7U753pbwffuKLgk7yITsSTjZD0M9dmMd2Vu08EHQB6f5zuNDH/NH9Kz430H/uAsLxstQl/MXFjtVBROpuP3LQc5ruAlKuXaV/48LrsB4Vn3smUttQ/WpMlRSWEha4qBT2bz/z0nPApUyTyFgwvEcVluPT/NEoTwpHTk4ajzOJPitymwIR7ah+aJKiyPKHdLmgIMxkyuzhYBtlp9yhaVbO+Aga62hr2icz1KlIZh1ja9Iy4H4RhETOz/cdN4jiNiOf+RDP0Y/V3m5vGO+8zgNUOp29t858kjgkaE1X0QsLUbmBnxDrAs7DL94YDZFwccXQSfnvAstnT4qd3dE+2jZ/ioEm8yjbfT/Udq1bU5046S3lcaEXO4s7SM03tn5S7b221rB1FZaPSg=

JzDJ/ETbaOUzJNhAiUDB8ecZAv2+x4nZExXwBPGzqD4xd0ar1n0gVkKRFRkpcAA1tplfiGPSbyuTxrP1GZxvVziuC6YzltKtVd1GBExjEh/CtAqdtyBztFuIkOy+VMieSg4KlSJurxlgwT6l4x9lNurUSra1XmaVhTQnOS1+jkRQULY3ETuFzDP3odUEsEvk6596kkDii2Y9qHK+X/vecQwpXu4nDRmKRarCWQMx8IghSw+xrXZJl/tafIyggVz3mUOD/wAOKMgUY6R7SPzYNVjPCYD0Mh4LeWC1MZu0FIQCvFr1Mk72JS3mpfJhnd0uwvcfxcHSnQs5eHg+GUyYV2FW/ADwugw21fggLo/d2V+jybRyh0de3Js7T5QuHJeAj8jI/7dQAj/hIw1bebJlFJsatr++wU3PHVVAuDev4SA=

运行时行为

QrlXScTKkZsbfE3IdqIEX9PhlClAaiLfSqLSsWdZa519strRHvjn6PadW8N2jzctB6CnwednRzLkIw/60qbOY1pSqKY0QIFwNOw8GuaS5dcHfJ593DQz3AA/3EkwNcDZspkstKcaqb45JHs5/xmwMhTTM12ghZ/UUr96aJPBXecXHs3I/374cQe7AN07hz/DUOc5F0nMC4QUd1twfHAozOtcOYiWT9fYuI340wJYAAbiZtXnUH8SEF7fRb9Oh2RoQsea6+fiqRbI5zqkA6qLpmYc5edDhIhQ7MsxLGZlKaaO6MD0uasMLre2nJAa3QAUxvzspxUqdIRf7i0hv4pmEA==

RXPM4k1zcdCCEixhmxUeDUOC6v9DSGhPdtBMKX0iRrsHNAnilrORXOSlvg5hqilRCYdhRH+X58tKaeUV4RAxNVJMCD92bseX6YDu99WPTQIkm/i7kUMziWqB903OsYXLKq+oUaf+lOfnXQk5byWVMzfcl2LOYTZoGRDA1yXaUl/2MLHbfDQ5qzmy7ekM4JOPBSixYPDBlCCIL/2MrT19BHqr80nzn2srzWK4E/FWWws=

DRqDv2JxR8iyHF4IPFRCqryIL0FVwEYJ3YA5EERjBETQahiBzfZ3aAqr17py0A6CcZ/pSY4nhIZ+5uoqCqapCMO0KFbnYRMo6/SLD7nfcmyN3NCNTEd84mS3jMk6smjpPH2TtU6jt7sKzTnPm3UF+DRvrNxatHnu2MhlCKmGH6LBfMjNWqudsxRUiQN62ecjIqB4I0Gsh1iNbvL4xAeAWxGEHo+NyeC+oV9UxzcCUIAtn8HoWtzjM5gX82AbgcooP99bREYF87kzZw5e2QCdAA==

擦除的类型

M+zi1Ij5Cy4QrDoI2m9quOPycX18PzjMjmZl/u/RnkbySajNxzq5KT0js4GxX4/fzIrIeCDyDjoW+ZZmM6SID6XA5uT2KnydngN+F+8jMuoj9tJC6aQ1aM2Yd8ovOFJPgQfQmONEJWXA+APfPgjA7Hwl/FHcRHdeG9SAP+GhRSgjHu0GkjFX6mvZYdW4lY/snCRihRT10TS7EADxWqkMFOhPuAtx3RCq5444tM4QEXId/KgGLfUXSztOOpy2THN4XNd0uf+sx+Ee0MsAXu+Qfyb7JsAwmaH2Ouw2L1vAXE4=

Ro4HBsR46cC6yMlup5ZnnnaJFSTSZG0e2cSCiP+3Pe1urtAKtx1U/k5qGuFrsMXeTCrXS+YijaILXNA8Gf5BcXy6lYuIYJmgIXd3KQBrEZtoo/3IE2e30UGqVx2lvLxkljxMDJEoQRKMLZDPwZtmVzW4C7OsjsPNSkwb3sdthZM5lfJA+ZmlacdDF3rp7cvtkQZge4/7DNlYdtT/S2SyfKESjbxnLcqZPkd983xIdD7I4Kbhk2Xwa33vVRnLIQZc5pfsSeVI+VWMPrfC9UtQ3BY0bBVni7XcMHenGbCLvMk=

+0prNi70gAYLFHiQAORm5QhQS+pUmm1U+pGRN5PaqXhzSHEHGutOgo/X9Skz6aXeUN0NzZwcnlqW0ziATBzA8RDrrCOF+IoCuiIvbsBqmosDMA7c+av97yK25pDabsTIaKvcNAQNFKTQu9+b26VES8U2E0PfFrZskME8mcutlJIqfkl1SSrKLVknqEcp9TwxTa3UXFuaHiFtMhxZ/Pdbu6FKLlyDSZOdl8cHMvjIzU8EJnpBAox4NLJ2hfsc9dymFJ9BmY5kLwveaPd08F09/g==

学习 JavaScript 和 TypeScript

mFBOWpMJToeTcKCuFbG66N5DcO1RKU4JeppiunkyIGEUVmHr50834uGtJUbMyQBY+z3TaaEKWDDIpMcBmaLMQjKM4YRfLIg+hNY9o1ZDtkA=

mHwIFIxeoAsjfWOEYdzoJ9wRou13DR0WNsvg1p94VgabOospdc3y8nRHnAdNwuXESE7QDZsjdvjl3bO/38vC7aKH9BpoQck6GFJkMf/vXcF9LuIyGsTpPF3s+T+10BxkE5RKdF2/GwLiCxD9LYEvN6Ja78rBVfGqHtoTPufUG5ifs9qINiLuAs2+ZzwyGDfwzLmPOwQo11NGxUqk+mQCf7SpmmnE9SfH/tJMDFuMeKtmjZOagimkAwJLkCD8g1Whk4WhgrkjslgaUHK05EjpQw==

a2Y1jlh0CEY+ew9aFCxNuT5xr00QsHhiLocD1IQtRS7XxIQe0lurJuocWOQo5OkIt2xoJuyyzwvLAPA3U11sxyXcJERkEYuBa7voJ4NBDgirU8ldgvXO1iesOioZRiTMM/4Wj+BM+bB0KMtDvzSu6dSaAMZDDpXPRNohNkrRjIokDgCHgolqjsLOEO+kwbn5tgFc81Hma0dsB7Wl5t0565VPqr8wv1NzhyOCNQEyBM+aw6QhFmLvaYSz80dzA9ZPSKXHc3ky7KhrdaEuwNYQSx9FniLT1itAdIecSwLWzzVQoasKPeOxNhCIUxp4zyOq7rjUfmvrV7ZVVJlhMSCWncCIXFlQ56rctL93Ot05x1WrVD6Jw7CQsiUhlIhq4hdHkVRZihBkGxHk+9nnHiwZUA==

quSRAILLZRU1eyE05vzQvH1FBnuYH4IAIP+fhZ2PveAGQAsu5A990qQEwimc7dfOz0906YazFduJa5Eswnlx6z+V509AXKasu3QCAALVIY45jouNbZawaMjI7ADX2y3qpcUu+iexqgvMAK4ZfEaq/EgUePbdPteMpaR2W/e6GWiKLxU1EcXXxnHGxtKRyMEDlJv+KU7+HwHt87Y3PVeIwLLBtrCOGCdIDZreIXzkz8B4BCquu5Wq9N3TVwTGJ4F8XNKDOn66N4TLkYadltWYElUXTdLtixqkz6A4Wn0eaWTUeX7EEC9zBeuZ3oRyjZ0q0DpjTTnpruQwXH9fW2Cx//Letxd+1A9Y325+0SzN+/v9QhUIO67kjAgf/8HWmZIzVxNqmCYB8egqa7jhF09PTHEqoGRxi/y93vbxGZpt6dnc27tfYPaTxXy3EFpRWAbc2FRU1cAZzgrJYnHkqNX9u1Vo3yfuarFmJ2IuPsDXcr9McyMAgZtcmn8wl15W+BXHXr/WlpfgQzLcz9RpikB1d7sxQ9Q7Y21BjgRNIyYzz8gVIn9Lrq0E0uouNrUiEvGwy8Sla5RwatfqLcBQvg7wIvvRMHyZp/oTkxjoHWp1Hm8=

下一步

gPhCKEjkKJ3Fa2qjr8Ed+9OTwOgGI+9A2vfOkehz/nbGahFUlPzyo7bZUMg64/rXCD+D2CWkErd/QTcZAqK4xfTtc3ZsWeHpxAge1fdMxOZ46rgGtuPGGXSnZkL8//XYeXoZfPHaiCah0g/+FIJEAw==

    F84rIwywcFNOmGkovuBTPJyAmgYTSvzyFZwuZRPjx47ETHahQ2CRKeXYFbINaQTgheA/DAyrqFcRt1Ps3Oo+miNdp4WIR/O2Uj2dKcMRsPLZ+RBtccedO+AbCQLO3nIGXsAB0UUy1X6zHKp+ffeU7L7NH2eXkHzRE6mGQsYWfDilzmyCmT7l+pm/mhD6Nv3x72FP+02NcdiMpPpOp/4j8dbyt5vnSIfB2WYa9/wn07hJv1WSMGqL/GzHsZsAGG3ltqhQN+rRo0i6zXXZnOxUNwj+3VcwgXqE1jmgXjVEN9olgWP1DAamx38G+bUcz6Q9NAmXu4/RuQL5QqGyieVJMbpT27IFKPuSOSPAvwAlCj8Mk6aRjkpLHWtnBd1ghdhfPbxyzynHtA83pLZESH3XM3SRt++5UlRsaGLCfEfWF49uid40NaikseNUPxKQc0Oe9ko/PUZoSTgrfasNCZ7CbPk9VDkGJ9CdN15wl5PUbW04J8KyWp9HTYuVdwJP7pWNjNIrGM5e8PztogbkrD4Jr6T+oivWZQAWcwTzsnYmtO1Q3qP62R3muEePN+q6/KRTZKf3w/l9PBa0GYRndVVe3BKaGAkEiYHPdwxHdWCG5NZl54546kIFz9dmMkhobEXrAfzuWybzIMajvCdb+AxZY//dfZDKn/Sw3XdZLzIWG8RIG/4CHeALWGd47wRFvy9t5bc+R1RwClxy06Qy0ffNj95I7yvyY/1ktFcPYZ55HMvaI51xfz+U0DcW/4zW10C3HQcGYUEfBV8AZkpXtRp3HLul+BeSuMG3nzzSNgleqeQ=