亚洲 国产精品 日韩-亚洲 激情-亚洲 欧美 91-亚洲 欧美 成人日韩-青青青草视频在线观看-青青青草影院

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 開發Web應用為啥要使用TypeScript?

開發Web應用為啥要使用TypeScript?

來源:千鋒教育
發布人:qyf
時間: 2022-09-14 17:44:42 1663148682

  一、什么是 TypeScript

  TypeScript 是近幾年被火爆的應用了,這讓大家產生了一個錯覺:這么多的擁護者,難道TypeScript是一個新的語言?

  TypeScript是微軟公司開發和維護的一種面向對象的編程語言。它是JavaScript的超集,包含其所有元素。

  TypeScript完全遵循OOPS的概念,在TSC(TypeScript編譯器)的幫助下,我們可以將TypeScript代碼(.ts文件)轉換成JavaScript(.js文件)

圖片1 (1)

  TypeScript是JavaScript的超集

  二、TypeScript 簡史

  2010年,Anders Hejlsberg(TypeScript的創建者)開始在微軟開發TypeScript,并于2012年向公眾發布了TypeScript的第一個版本(TypeScript 0.8)。盡管TypeScript的發布受到了全世界許多人的稱贊,但是由于缺少主要ide的支持,它并沒有被JavaScript社區主要采用。

  TypeScript的第一個版本(TypeScript 0.8)于2012年10月發布。

  最新版本的Typescript(Typescript 3.0)于2018年7月發布,您可以在這里下載最新版本!

  三、為什么我們要使用TypeScript?

  · TypeScript簡化了JavaScript代碼,使其更易于閱讀和調試。

  · TypeScript是開源的。

  · TypeScript為JavaScript ide和實踐(如靜態檢查)提供了高效的開發工具。

  · TypeScript使代碼更易于閱讀和理解。

  · 使用TypeScript,我們可以大大改進普通的JavaScript。

  · TypeScript為我們提供了ES6(ECMAScript 6)的所有優點,以及更高的生產率。

  · TypeScript通過對代碼進行類型檢查,可以幫助我們避免在編寫JavaScript時經常遇到的令人痛苦的錯誤。

  · 強大的類型系統,包括泛型。

  · TypeScript只不過是帶有一些附加功能的JavaScript。

  · TypeScript代碼可以按照ES5和ES6標準編譯,以支持最新的瀏覽器。

  · 與ECMAScript對齊以實現兼容性。

  · 以JavaScript開始和結束。

  · 支持靜態類型。

  · TypeScript將節省開發人員的時間。

  · TypeScript是ES3、ES5和ES6的超集。

  TypeScript的附加功能

  · 具有可選參數的函數。

  · 使用REST參數的函數。

  · 泛型支持。

  · 模塊支持。

  四、大牛現身說法:

  · “我們喜歡TypeScript有很多方面……有了TypeScript,我們的幾個團隊成員說了類似的話,我現在實際上已經理解了我們自己的大部分代碼!因為他們可以輕松地遍歷它并更好地理解關系。我們已經通過TypeScript的檢查發現了幾個漏洞。“-Brad Green,Angular工程總監“

  · Ionic的主要目標之一是使應用程序開發盡可能快速和簡單,工具支持TypeScript為我們 提供了自動完成、類型檢查和源文檔與之真正一致。”-Tim Lancina,工具開發人員–Ionic“

  · 在編寫基于web或JavaScript的現代應用程序時,TypeScript是一個明智的選擇。TypeScript經過仔細考慮的語言特性和功能,以及它不斷改進的工具,帶來了非常有成效的開發體驗。”-Epic研究員Aaron Cornelius“

  · TypeScript幫助我們重用團隊的知識并通過提供與C#相同的優秀開發經驗來保持相同的團隊速度……比普通JavaScript有了巨大的改進。”-Valio Stoychev,PM Lead–NativeScript“

  五、你可能不知道的TypeScript頂級功能

  1、面向對象程序設計

  TypeScript包含一組非常好的面向對象編程(OOP)特性,這些特性有助于維護健壯和干凈的代碼;這提高了代碼質量和可維護性。這些OOP特性使TypeScript代碼非常整潔和有組織性。

  例如:

  class CustomerModel {

  customerId: number;

  companyName: string;

  contactName: string;

  country: string;

  }

  class CustomerOperation{

  addCustomer(customerData: CustomerModel) : number {

  // 添加用戶

  let customerId = 5;// 保存后返回的ID

  return customerId;

  }

  }

  2、接口、泛型、繼承和方法訪問修飾符

  TypeScript支持接口、泛型、繼承和方法訪問修飾符。接口是指定契約的好方法。泛型有助于提供編譯時檢查,繼承使新對象具有現有對象的屬性,訪問修飾符控制類成員的可訪問性。TypeScript有兩個訪問修飾符-public和private。默認情況下,成員是公共的,但您可以顯式地向其添加公共或私有修飾符。

  (1)接口

  interface ITax {

  taxpayerId: string;

  calculateTax(): number;

  }

  class IncomeTax implements ITax {

  taxpayerId: string;

  calculateTax(): number {

  return 10000;

  }

  }

  class ServiceTax implements ITax {

  taxpayerId: string;

  calculateTax(): number {

  return 2000;

  }

  }

  (2)訪問修飾符

  class Customers{

  public companyname:string;

  private country:string;

  }

  顯示一個公共變量和一個私有變量

  (3)繼承

  class Employee{

  Firstname:string;

  }

  class Company extends Employee {

  Department:string;

  Role:string

  private AddEmployee(){

  this.Department="myDept";

  this.Role="Manager";

  this.FirstName="Test";

  }

  }

  (4)泛型

  function identity(arg: T): T {

  return arg;

  }

  // 顯示泛型實現的示例

  let output = identity("myString");

  let outputl = identity(23);

  (5)強/靜態類型

  TypeScript不允許將值與不同的數據類型混合。如果違反了這些限制,就會拋出錯誤。因此,在聲明變量時必須定義類型,并且除了在JavaScript中非常可能定義的類型之外,不能分配其他值。

  例如:

  let testnumber: number = 6;

  testnumber = "myNumber"; // 這將引發錯誤

  testnumber = 5; // 這樣就可以了

fb0eba22-503f-4246-8612-1ae20699cc76_output

  3、編譯時/靜態類型檢查

  如果我們不遵循任何編程語言的正確語法和語義,那么編譯器就會拋出編譯時錯誤。在刪除所有語法錯誤或調試編譯時錯誤之前,它們不會讓程序執行一行代碼。TypeScript也是如此。

  例如:

  let isDone: boolean = false;

  isDone = "345"; // 這將引發錯誤

  isDone = true; // 這樣就可以了

  4、比JavaScript代碼更少

  TypeScript是JavaScript的包裝器,因此可以使用幫助類來減少代碼。Typescript中的代碼更容易理解。

  5、可讀性

  接口、類等為代碼提供可讀性。由于代碼是用類和接口編寫的,因此更有意義,也更易于閱讀和理解。

  舉例:

  class Greeter {

  private greeting: string;

  constructor (private message: string) {

  this.greeting = message;

  }

  greet() {

  return "Hello, " + this.greeting;

  }

  }

  JavaScript 代碼:

  var Greeter = (function () {

  function Greeter(message) {

  this.greeting = message;

  }

  Greeter.prototype.greet = function () {

  return "Hello, " + this.greeting;

  };

  return Greeter;

  })();

  6、兼容性

  Typescript與JavaScript庫兼容,比如 underscore.js,Lodash等。它們有許多內置且易于使用的功能,使開發更快。

  7、提供可以將代碼轉換為JavaScript等效代碼的“編譯器”

  TypeScript代碼由純JavaScript代碼以及特定于TypeScript的某些關鍵字和構造組成。但是,編譯TypeScript代碼時,它會轉換為普通的JavaScript。這意味著生成的JavaScript可以與任何支持JavaScript的瀏覽器一起使用。

  8、支持模塊

  隨著TypeScript代碼基的增長,組織類和接口以獲得更好的可維護性變得非常重要。TypeScript模塊允許您這樣做。模塊是代碼的容器,可以幫助您以整潔的方式組織代碼。從概念上講,您可能會發現它們類似于.NET命名空間。

  例如:

  module Company {

  class Employee {

  }

  class EmployeeHelper {

  targetEmployee: Employee;

  }

  export class Customer {

  }

  }

  var obj = new Company.Customer();

  9、ES6 功能支持

  Typescript是ES6的一個超集,所以ES6的所有特性它都有。另外還有一些特性,比如它支持通常稱為lambda函數的箭頭函數。ES6引入了一種稍微不同的語法來定義匿名函數,稱為胖箭頭(fat arrow)語法。

  舉例:

  setTimeout(() => {

  console.log("setTimeout called!")

  }, 1000);

  10、在流行的框架中使用

  TypeScript在過去幾年里越來越流行。也許TypeScript流行的決定性時刻是Angular2正式轉換到TS的時候,這是一個雙贏的局面。

  11、減少錯誤

  它減少了諸如空處理、未定義等錯誤。強類型特性,通過適當的類型檢查限制開發人員,來編寫特定類型的代碼。

  12、函數重載

  TypeScript允許您定義重載函數。這樣,您可以根據參數調用函數的不同實現。但是,請記住,TypeScript函數重載有點奇怪,需要在實現期間進行類型檢查。這種限制是由于TypeScript代碼最終被編譯成純JavaScript,而JavaScript不支持真正意義上的函數重載概念。

  例如:

  class functionOverloading{

  addCustomer(custId: number);

  addCustomer(company: string);

  addCustomer(value: any) {

  if (value && typeof value == "number") {

  alert("First overload - " + value);

  }

  if (value && typeof value == "string") {

  alert("Second overload - " + value);

  }

  }

  }

  13、構造器

  在TypeScript中定義的類可以有構造函數。構造函數通常通過將默認值設置為其屬性來完成初始化對象的工作。構造函數也可以像函數一樣重載。

  例如:

  export class SampleClass{

  private title: string;

  constructor(public constructorexample: string){

  this.title = constructorexample;

  }

  }

  14、調試

  用TypeScript編寫的代碼很容易調試。

  15、TypeScript只是JavaScript

  TypeScript始于JavaScript,止于JavaScript。Typescript采用JavaScript中程序的基本構建塊。為了執行的目的,所有類型腳本代碼都轉換為其JavaScript等效代碼。

  例如:

  class Greeter {

  greeting: string;

  constructor (message: string) {

  this.greeting = message;

  }

  greet() {

  return "Hello, " + this.greeting;

  }

  }

  JavaScript 代碼:

  var Greeter = (function () {

  function Greeter(message) {

  this.greeting = message;

  }

  Greeter.prototype.greet = function () {

  return "Hello, " + this.greeting;

  };

  return Greeter;

  })();

  16、可移植性

  TypeScript可以跨瀏覽器、設備和操作系統移植。它可以在JavaScript運行的任何環境中運行。與對應的腳本不同,TypeScript不需要專用的VM或特定的運行時環境來執行。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
開班信息
北京校區
  • 北京校區
  • 大連校區
  • 廣州校區
  • 成都校區
  • 杭州校區
  • 長沙校區
  • 合肥校區
  • 南京校區
  • 上海校區
  • 深圳校區
  • 武漢校區
  • 鄭州校區
  • 西安校區
  • 青島校區
  • 重慶校區
  • 太原校區
  • 沈陽校區
  • 南昌校區
  • 哈爾濱校區
精品欧美H无遮挡在线看中文| 国产在线精品无码二区| 国产在线精品一区二区三区不卡 | 亚洲AⅤ无码精品一区二区三区 | 精东传媒2021精品密友第一季| 久久丫免费无码一区二区| 欧美在线观看免费做受视频| 无码国产69精品久久久久APP | 领导在办公室含我奶头口述 | 宝贝对着镜子CAO好不好| 国产精彩乱子真实视频| 久久久不卡国产精品一区二区| 欧美乱大交XXXXX潮喷| 天堂8在/线中文在线资源8| 亚洲精品无码AⅤ片| 99久久伊人精品综合观看| 国产成人麻豆精品午夜福利在线| 精品少妇无码AV无码专区蜜臀| 欧美人妻久久精品| 小受叫床高潮娇喘嗯啊MP3| 中文天堂资源在线WWW| 国产99视频精品免费视看9| 精品亚洲成a人无码成a在线观看 | 国产无遮挡无码视频在线观看不卡| 久久久橹橹橹久久久久高清| 日韩精品人妻系列无码专区| 亚洲精品成人网久久久久久| Www内射熟妇COm| 护士HD老师FREE性ⅩⅩⅩ| 青草久久久国产线免观蜜芽| 亚洲AV无码乱码在线观看性色| 99国精产品灬源码168| 国产热の有码热の无码视频| 男人用嘴添女人私密视频| 无码专区人妻诱中文字幕| 一区二区三区毛片| 国产成人一区二区三区免费| 免费A级毛片无码无遮挡内射| 无码激情亚洲一区| 50岁退休熟女露脸高潮| 国产亚洲精品线观看K频道| 欧洲老妇做爰XXXⅩ性活电影| 亚洲AV中文无码乱人伦在线r▽| 97国产精华最好的产品在线| 国内精品久久久久影院中文字幕| 人妻AV一区二区三区| 亚洲精品无码久久| 高清国语自产拍免费视频| 乱中年女人伦AV| 性少妇VIDEOXXX欧美69| 拔萝卜视频免费观看高清下载| 久久se精品一区二区| 他一边曰一边吃我奶小说免看| 综合亚洲另类欧美久久成人精品 | FREEFORNVIDEOS性| 精品无码AV无码免费专区| 色欲AV无码中字乱人伦在线| 18禁黄网站禁片无遮挡观看AP| 国产自产V一区二区三区C| 日出水了好深好涨| 中文字幕一精品亚洲无线一区| 好男人在线观看视频| 少妇高潮惨叫久久久久久| 97超碰中文字幕久久精品| 久久WWW免费人成人片| 无码热综合无码色综合| 拔萝卜在线视频免费观看| 久久中文字幕无码专区| 亚洲AV乱码中文一区二区三区 | 亚洲无日韩码精品| 国产乱子伦精品无码码专区| 日本丰满少妇无码AⅤ波多| 曰韩一区二区三区视频| 黄 色 视 频 在 线 免费观| 我的好妈妈中文字幕| 成年女人天堂香蕉网| 妺妺窝人体色聚窝窝| 亚洲区综合区小说区激情区| 国产乱人伦偷精品视频不卡| 日韩午夜理论免费TV影院| AV未满十八禁免费网站| 乱人伦人妻中文字幕不卡| 亚洲精品9999久久久久无码 | 菠萝菠萝蜜免费播放视频| 奶头被客人玩的又红又肿| 野花社区日本韩国免费观看 | 国产日韩一区在线精品| 少妇婬荡久久久久AV无码| 宝贝感受到它在爱你吗病娇小说| 免费人成激情视频在线观看冫| 亚洲中文字幕无码人在线| 狠狠躁夜夜躁AV网站中文字幕| 无码人妻在线视频| 国产成人香蕉久久久久| 色噜噜狠狠色综合久色AⅤ网视频| MM131极品尤物美女| 女人与公拘交酡ZOZO| 中文字幕AV无码一区二区三区电 | 无码专区人妻丝袜| 国产精华液一二三区别在哪| 熟妇人妻无乱码中文字幕真矢织江| 爆乳大森しずか无码| 人妻 偷拍 无码 中文字幕| AAAA级少妇高潮大片在线观看| 免费A级毛片18禁| 中文无码一区二区三区在线观看| 久久无码中文字幕无码| 亚洲综合久久成人AV| 久久精品亚洲精品国产色婷| 亚洲色偷偷综合亚洲AV伊人| 久久99精品国产麻豆宅宅| 亚洲熟妇少妇任你躁在线观看无码 | 中文字幕AV无码免费一区| 乱妇乱女熟妇熟女网站| 中文手机电影在线观看| 男女裸交免费无遮挡全过程| 99精产国品一二三产区区| 欧美V日韩V亚洲V最新在线观看| 7X7X7X任意槽2023进口| 欧美大屁股流白浆XXXX视频| FREEZEFRAME丰满寡妇| 欧美一进一出抽搐大尺度视频 | 无遮挡国产高潮视频免费观看| 国产精品青青在线麻豆| 午夜亚洲AV日韩AV无码大全 | 亚洲丁香五月天缴情综合| 后入骚妇内射AV| 亚洲无人区码一二三四区别| 久久天天躁狠狠躁夜夜| 中文字幕精品第一区二区三区| 男人做一次爱能舒服多久| JAPANESETUBE日本X| 日本XXXX裸体XXXX在线| 丰满人妻无奈张开双腿AV| 无码人妻av免费一区二区三区| 国产内射爽爽大片视频社区在线| 亚洲AV无码成人影院一尤物区| 精品国产乱码久久久久久蜜桃网站 | 免费A级毛片无码A∨蜜芽18禁 | 人妻AV中文字幕无码专区| 成人影院永久免费观看网址| 同性男男黄G片免费网站| 国产亚洲精品无码不卡| 亚洲一区二区精品无码色欲Av| 麻花传媒MV与其它传媒公司比较 | 亚洲第一无码AV播放器| 久久婷婷成人综合色综合| 99国精产品灬源码1688钻| 日本免费精品一区二区三区| 国产精品VA在线播放| 亚洲高清国产拍精品熟女| 两个奶头被吃到高潮什么感觉| ZOOM与人性ZOOM怎么同步| 偷拍与自偷拍亚洲精品| 精品国产一区二区三区AV 性色| 在线A毛片免费视频观看| 欧美午夜成人精品| 国产成人无码18禁午夜福利网址 | 亚洲 校园 欧美 国产 另类| 久久高清内射无套| AV免费无码天堂在线| 四虎成人精品一区二区免费网站 | 国产美女精品一区二区三区| 亚洲性XXXXX极品少妇| 欧美在线三级艳情网站| 国产精品久久久久永久免费看| 亚洲欧美V国产蜜芽TV| 欧美成人家庭影院| 国产成人片AⅤ在线观看 | 久久久久久AV无码免费看大片| CHINA熟妇老熟女HD| 无码少妇一区二区浪潮av| 久久久久人妻一区精品色欧美| АⅤ天堂中文在线网| 性高朝久久久久久久久久| 老湿机香蕉久久久久久| 成人做受120视频试看| 亚洲国产精品久久久天堂不卡海量| 女性の乳頭を凸起しています| 国产成人香蕉久久久久| 夜夜嗨AV熟妇人妻涩爱AV| 日本中文字幕一区二区高清在线| 韩国亚洲精品A在线无码| 99热国产这里只有精品9| 无码熟妇人妻AV在线影片| 蜜桃久久精品成人无码AV| 国产成人无码精品一区在线观看 | 色多多性虎精品无码AV| 久久精品国产蜜桃AV麻豆| 成年美女黄网站18禁免费| 亚洲丰满熟女一区二区V| 人妻被黑人与白人巨大中出| 韩国无码无遮挡在线观看| BBBBB毛茸茸BBBBBBB| 亚洲国产AV无码精品| 日本乱人伦AⅤ精品| 久久国产精品99精品国产987| 纯爱无遮挡H肉动漫| 一本无码字幕在钱少妇人妻 | 国产成人综合色视频精品|