国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一篇了解編程語言 TypeScript

開發 后端
TypeScript 是微軟開發的一個開源的編程語言,通過在 JavaScript 的基礎上添加靜態類型定義構建而成。

 [[410510]]

TypeScript 是微軟開發的一個開源的編程語言,通過在 JavaScript 的基礎上添加靜態類型定義構建而成。

TypeScript 更具表現力,這意味著它的語法混亂更少,由于高級調試器專注于在編譯時之前捕獲邏輯錯誤,因此調試很容易,靜態類型使 TypeScript 比 JavaScript 動態類型更易于閱讀和結構化,由于通用的轉譯,它可以跨平臺使用,在客戶端和服務器端項目中。

TypeScript 通過 TypeScript 編譯器或 Babel 轉譯為 JavaScript 代碼,可運行在任何瀏覽器,任何操作系統,當前穩定版本為 4.2.3 版本。

TypeScript 的主要特點是什么?

跨平臺性:

TypeScript 編譯器可以安裝在任何操作系統上,包括 Windows、macOS 和 Linux;

支持 ES6 特性:

TypeScript 包含計劃中的 ECMAScript 2015(ES6) 的大部分特性,例如箭頭函數;

面向對象編程思想:

TypeScript 提供所有標準的 OOP 功能,如類、接口和模塊;

嚴格的靜態類型檢查:

TypeScript 使用靜態類型并幫助在編譯時進行類型檢查,因此,你可以在編寫代碼時發現編譯時錯誤,而無需運行腳本;

可選的靜態類型:

如果你習慣了 JavaScript 的動態類型(在使用變量的時候可以根據傳值改變變量的數據類型),TypeScript 還允許可選的靜態類型(在變量后面添加冒號+數據類型,在使用中不可以改變其數據類型,否則報錯);

DOM 操作:

您可以使用 TypeScript 來操作 DOM 添加或刪除客戶端網頁元素;

全局作用域:

在任何類之外定義,可以在程序中的任何地方使用;

函數/類范圍:

在函數或類中定義的變量可以在該范圍內的任何地方使用;

局部作用域/代碼塊:

在局部作用域中定義的變量可以在該塊中的任何地方使用;

TypeScript 內置數據類型

數字類型:

用于表示數字類型的值,TypeScript 中的所有數字都存儲為浮點值;

  1. let decLiteral: number = 6; // 十進制 
  2. let hexLiteral: number = 0xf00d; // 十六進制 
  3. let binaryLiteral: number = 0b1010; // 二進制 
  4. let octalLiteral: number = 0o744; // 八進制 

布爾類型:

一個邏輯二進制開關,只能包含 true 或 false;

  1. let isTrue:boolean = true

字符串類型:

可以用單引號(')和雙引號(")來表示字符串類型,除此之外還支持使用模板字符串反引號(`)來定義多行文本和內嵌表達式,使用 ${ expr } 的形式嵌入變量或表達式;

  1. let name:string = 'Tom'
  2. let city:string = 'Beijing'
  3. let content:string = `他叫 ${ name } 生活在 ${ city }`; 

數組類型:

TypeScript 數組的操作類似于 JavaScript 中數組的操作,TypeScript 建議最好只為數組元素賦予一種類型的值,定義數組有兩種寫法;

  1. let arr: number[] = [2,3]; 
  2. let arr: Array<number> = [2,3]; 

對象類型:

object 對象類型可以用于描述一個對象;

  1. const people: object = { 
  2.   name"Tom"
  3.   age: 20, 
  4.   city: 'Beijing'
  5. console.log('他叫 ${people.name} ,他住在${people.city}'); 

symbol類型:

在 ES5 中,如果我們是不可以在對象中添加相同的屬性名稱的,但是我們也可以通過 symbol 來定義相同的名稱,因為 Symbol 函數返回的是不同的值;

  1. const s1 = Symbol("identity"); 
  2. const s2 = Symbol("identity"); 
  3.  
  4. // 一個人多個身份 
  5. const person = { 
  6.   [s1]: "校長"
  7.   [s2]: "化學老師"

元祖類型:

元組類型用來表示已知數量和類型的數組,各元素的類型不必相同;

  1. let x : [string,number]; 
  2. x = ['Angular',5]; // 正確 
  3. x = [5,'Angular']; // 報錯 

枚舉類型:

枚舉是一個可被命名的整型常數的集合,枚舉類型為集合成員賦予有意義的名稱增強可讀性;

  1. // 枚舉類型默認下標是0 
  2. enum Color { red, yellow, blue }; 
  3. let c: Color = Color.blue; 
  4. console.log(c); // 2 
  5. // 手動設置枚舉下標 
  6. enum Color { red = 1, yellow = 2, blue = 3 }; 
  7. let c: Color = Color.blue; 
  8. console.log(c); // 3 

任意值類型:

任意值是 TypeScript 針對編程時類型不明確的變量使用的一種數據類型,常用于以下三種;

值可能來自于動態的內容,比如來自用戶輸入或第三方代碼庫。 這種情況下,我們不希望類型檢查器對這些值進行檢查而是直接讓它們通過編譯階段的檢查;

  1. let x: any = 123456; 
  2. x = 'becomes a string'
  3. x = false

允許你在編譯時可選擇地包含或移除類型檢查;

  1. let x: any = 4; 
  2. x.toFixed(); // 正確,并不檢查是否存在 

定義儲存各種類型數據的數組時;

  1. let arrarList: any[] = [1,'qwe',true]; 

默認情況下 null 和 undefined 是所有類型的子類型。 就是說你可以把 null 和 undefined 賦值給 number 類型的變量;

然而,如果啟用 -- strictNullChecks,就可以使得 null 和 undefined 只能被賦值給 void 或本身對應的類型;

  1. let x: number; 
  2. x = 1; 
  3. x = null; // 正確 
  4.  
  5. // 啟用 --strictNullChecks 
  6. let y: number; 
  7. y = 1; 
  8. y = null; // 錯誤 

void 類型:

使用 void 表示沒有任何類型,例如一個函數沒有返回值,意味著返回void;

  1. function sayHello(): void{ 
  2.   console.log('I said hello'); 

naver 類型:

never 是其他類型(包括 null 和 undefined )的子類型,代表從不會出現的值,這意味著聲明為 never 類型的變量只能被 never 類型所賦值,在函數中通常表示為拋出異常或無法執行到終止點;

  1. let x: never; 
  2. let y: number; 
  3.  
  4. x = 123; // 報錯 
  5. y = x; // 正確 

編譯 TypeScript 文件

編譯 TypeScript 文件需要安裝 TypeScript 編譯器,使用以下指令安裝并運行 ts;

  1. npm install typescript -g 
  2. cd到指定目錄下 
  3. tsc typescript_test.ts 

使用 TypeScript 創建變量

由于支持 ES6 語法,創建變量方式有 var、let、const 三種;

  1. var name:string = 'Tom'

var 是嚴格范圍變量的舊風格。你應該盡可能避免使用,var 因為它會在較大的項目中導致問題;

  1. let num:number = 123; 

let 是在 TypeScript 中聲明變量的默認方式。與 var 相比,let 減少了編譯時錯誤的數量并提高了代碼的可讀性;

  1. const arr:Array<number> = [12,43]; 

const 創建一個其值不能改變的常量(如果創建的是引用類型,則可以改變其內部的值),它使用相同的范圍規則,let并有助于降低整體程序的復雜性;

TypeScript 接口

接口為使用該接口的對象定義契約或結構,接口是用關鍵字定義的 interface,它可以包含使用函數或箭頭函數的屬性和方法聲明;

  1. interface staffInfo { 
  2.   staffCode: number; 
  3.   staffName: string; 
  4.   getSalary: (number) => number; 
  5.   getLeaderName(number): string;  

TypeScript 函數重載

要在 TypeScript 重載函數,只需創建兩個名稱相同但參數/返回類型不同的函數,兩個函數必須接受相同數量的參數。這是 TypeScript 中多態性的重要組成部分,例如,你可以創建一個add函數,如果它們是數字,則將兩個參數相加,如果它們是字符串,則將它們連接起來,白話意思就是一個方法傳不同參數,獲取到不同的返回值;

  1. function add(a:string, b:string):string; 
  2. function add(a:number, b:number): number; 
  3. function add(a: any, b:any): any { 
  4.   return a + b; 
  5. add("Hello ""Steve"); // Hello Steve 
  6. add(10, 20); // 30 

TypeScript 模塊

TypeScript 中的模塊是相關變量、函數、類和接口的集合,你可以將模塊視為包含執行任務所需的一切的容器,可以導入模塊以輕松地在項目之間共享代碼;

  1. module addFun { 
  2.   class Add { 
  3.     export add(x, y) { 
  4.       return x+y; 
  5.     } 
  6.   } 

TypeScript 類

類表示一組相關對象的共享行為、屬性和方法,例如,一個學生類 Student

  1. class Student {     
  2.   stuNum: number;     
  3.   stuName: string;     
  4.   constructor(num: number, name: string) {     
  5.     this.stuName = name
  6.     this.stuNum = num; 
  7.   } 

TypeScript 與 JavaScript 比較

TypeScript 是 JavaScript 的開源語法超集,可編譯為 JavaScript,所有原始 JavaScript 庫和語法仍然有效,但 TypeScript 增加了 JavaScript 中沒有的額外語法選項和編譯器功能。TypeScript 還可以與大多數與 JavaScript 相同的技術接口,例如 Vue 和 jQuery;

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2020-12-30 09:04:32

Go語言TCPUDP

2022-12-19 08:14:30

注解開發配置

2022-10-26 07:39:36

MVCC數據庫RR

2021-05-20 06:57:16

RabbitMQ開源消息

2021-10-28 19:15:02

IPUARM

2021-07-14 10:08:30

責任鏈模式加工鏈

2020-10-09 08:15:11

JsBridge

2021-09-29 10:00:07

Go語言基礎

2021-10-13 10:00:52

Go語言基礎

2022-02-16 10:03:06

對象接口代碼

2020-11-05 09:58:16

Go語言Map

2020-10-22 08:33:22

Go語言

2020-11-11 10:52:54

Go語言C語言

2020-10-22 11:15:47

Go語言變量

2021-12-30 09:38:51

DDoS攻擊防范

2023-05-12 08:19:12

Netty程序框架

2021-10-30 07:55:00

BLE 藍牙開發

2021-07-28 10:02:54

建造者模式代碼

2021-06-30 00:20:12

Hangfire.NET平臺

2022-06-08 00:10:33

數據治理框架
點贊
收藏

51CTO技術棧公眾號

日韩av在线播放中文字幕| 久久不见久久见免费视频7| 性做久久久久久免费观看欧美| 一区二区三区国| 亚洲午夜精品久久久久久app| 国产美女久久精品| 精品日韩在线| 91在线视频精品| 激情六月综合| 无码人妻aⅴ一区二区三区日本| 日韩精品午夜视频| 久久精品日韩| 麻豆视频一区二区| 日本在线视频www| 亚洲美女屁股眼交3| 在线观看免费黄色| 日韩av在线一区二区| 欧美日韩一本| 中文字幕一区二区三区有限公司| 亚洲一区二区av| 亚洲欧美综合v| 手机av在线| 成人亚洲综合| 精品一区二区三区香蕉蜜桃| 久久国产精品一区二区三区| 欧美在线亚洲| 国产精品久久综合av爱欲tv| 日本欧美高清| 亚洲a在线观看| 99国产精品私拍| 久久久久久久久久久久久久久久av | av在线导航| 3atv在线一区二区三区| 岛国毛片av在线| 日韩中文有码在线视频| 日韩护士脚交太爽了| 91高清视频在线免费观看| 色吊丝一区二区| 91中文字幕一区| 视频一区视频二区中文| 中文字幕av久久| 中文字幕日本不卡| 神马久久精品| 亚洲国产精品国自产拍av秋霞| 国内成人精品视频| 国产探花在线观看| 久久久国产91| 婷婷亚洲五月| 小说区图片区图片区另类灬| 国产精品1区二区.| 国产一线二线三线在线观看| 日本韩国一区二区三区视频| 欧洲一区二区三区| 国产精品久久国产精品99gif| 99成人免费视频| 自拍偷拍21p| 精品国产伦一区二区三区观看方式 | 欧美精品一区二区三区高清aⅴ| 成人免费观看在线观看| 国产精品免费观看在线| 成人激情视频网站| 日本成a人片在线观看| 欧美成人免费在线视频| 性欧美精品高清| 日本亚洲欧美| 国产成人精品综合| 91麻豆精品一区二区三区| 激情小视频在线| 欧美一级视频在线观看| 国产在线国偷精品免费看| 韩国三级在线观看久| 99国产精品久| 成人免费91| 亚洲一区二区三区加勒比 | 麻豆tv入口在线看| 97热在线精品视频在线观看| 日韩高清在线不卡| 在线观看完整版免费| 国产精品精品视频| 亚洲成人自拍偷拍| 国产调教一区二区三区| 国产喷水theporn| 成年无码av片在线| www久久精品| 林ゆな中文字幕一区二区| 成人免费无码av| 久久色免费在线视频| 久久免费午夜影院| 蜜桃精品wwwmitaows| 亚洲啪啪aⅴ一区二区三区9色| 国产区精品在线观看| 色综合久久综合网欧美综合网| 999国产精品永久免费视频app| 麻豆av在线| 精品高清视频| 亚洲国产婷婷香蕉久久久久久| 国内精品写真在线观看| 综合欧美精品| 久草.com| 欧美日韩在线一区二区三区| 亚洲激情国产精品| 中日韩av电影| 国产精品婷婷| 欧美一区一区| 国产51人人成人人人人爽色哟哟 | 国产精品传媒麻豆hd| 人妻有码中文字幕| 成人欧美一区二区三区在线湿哒哒| 91精品国产综合久久小美女| 国产成人午夜视频| 五月综合久久| 国产在线精彩视频| 免费女人黄页| 波多野结衣激情| 国产精品偷伦免费视频观看的| 精品国产sm最大网站| 亚洲制服丝袜在线| 国产中文字幕一区| 国产精品久久天天影视| 国产欧洲在线| 国产人成在线视频| av在线dvd| 欧美午夜性视频| 日韩国产美国| www.成人av.com| 欧美亚洲日本网站| 神马久久久久久| 亚洲国产欧美一区二区丝袜黑人| 亚洲精品成人天堂一二三| 国产白丝精品91爽爽久久| 国产亚洲午夜| 最新日韩av| 久久精品青草| 97精品一区| 欧美gvvideo网站| 亚洲都市激情| 成人女性视频| 色喇叭免费久久综合| 国产美女撒尿一区二区| 2019中文亚洲字幕| 国产精品视频一区二区三区| 蜜桃麻豆av在线| 88xx成人免费观看视频库 | 久久婷婷国产91天堂综合精品| 手机福利在线视频| 99re6这里有精品热视频| 亚洲成人蜜桃| 欧美日韩在线一二三| 一区二区三区久久网| 久久久久久久久久久视频| 日韩中文字幕免费在线| 国产黄色特级片| 日韩黄色视屏| 在线看免费av| 碰碰在线视频| 国产淫片免费看| 日本在线аv| av网页在线| 丝袜美腿一区| 狼人天天伊人久久| 国内综合精品午夜久久资源| 久久看片网站| 久久影音资源网| 亚洲地区一二三色| 国产视频一区在线| 欧美性视频网站| 视频一区视频二区视频三区视频四区国产 | 亚洲在线不卡| 免费av网址在线| 极品粉嫩饱满一线天在线| 在线观看免费视频你懂的| 日韩久久一区| 一区二区三区高清视频在线观看| 成av人片一区二区| 五月婷婷色综合| 亚洲人成77777在线观看网| 欧美一级片免费在线| 91免费网站视频| 最近中文视频在线| 香蕉成人影院| 蜜乳av另类精品一区二区| 国产精品无人区| 一本色道久久综合狠狠躁篇怎么玩 | 精品国产欧美成人夜夜嗨| 91亚洲永久免费精品| 国产精品涩涩涩视频网站| www.九色在线| 国产精品日韩久久久| 日本欧美黄色片| 香蕉影院在线| 亚洲人成亚洲精品| 26uuu亚洲| 久久久国产一区二区| 亚洲一区三区| aaa日本高清在线播放免费观看| 天堂99x99es久久精品免费| 国产成人av一区二区三区在线观看| 欧美性色aⅴ视频一区日韩精品| 国产999精品久久久| 高清中文字幕在线|