??TypeScript是微軟開發(fā)的一個開源的編程語言裸准,通過在JavaScript的基礎(chǔ)上添加靜態(tài)類型定義構(gòu)建而成权悟,是javascript的超集僵芹。類型注解就是在聲明變量的同時,說明該變量的類型疆栏。
??雖然說在javascript中我們也有number,boolean嚎莉,string等類型,但是在使用時他們類型都是可以隨時改變的醉旦,這樣不利于程序的閱讀與維護(hù)饶米。
類型注解
??在typescript中,一旦為變量添加了類型注解车胡,這個變量的類型就不能發(fā)生改變檬输,否則編譯報錯,不通過匈棘。
??下面一起看看類型注解的使用吧:
- number
// 聲明變量并指定類型
let age: number
// 賦值
age = 18
其實也挺簡單就是“變量名:變量類型”
如果給age賦值一個字符串丧慈,就會報錯,其他類型亦是如此
剩下的boolean,string逃默,null鹃愤,undefined,any(任意類型)完域,never(永不存在的值的類型)都是這樣
Snipaste_2021-04-13_20-46-35.png
- 數(shù)組
let arr: string[] = []
let arr: number[] = []
……
let newArr: string[] = new Array()
let newArr: number[] = new Array()
……
為數(shù)組聲明類型之后软吐,說明該數(shù)組只能存儲該類型的元素,就不能什么類型都往里存了
- 元組
數(shù)組的元素類型被限制了吟税,使用起來貌似比較麻煩了凹耙,想要存入不同類型的元素怎么辦?官方為我們提供了一個新的數(shù)據(jù)類型------元組
let tup: [string, number, boolean] = ["元組類型", 12, true]
聲明方式就是在冒號的中括號中聲明你的數(shù)據(jù)每一個位置的數(shù)據(jù)類型肠仪,同樣的后面的數(shù)的類型必須和聲明時的數(shù)據(jù)類型位置一一對應(yīng)肖抱,否則也是錯誤的
- 枚舉
枚舉類型是對JavaScript標(biāo)準(zhǔn)數(shù)據(jù)類型的一個補充,使用enum關(guān)鍵字聲明
enum 名字{ 元素1, 元素2异旧,……}
enum Gender { Female, Male }
使用枚舉:
let userGender: Gender
詳細(xì)用法可以看這:
- 函數(shù)
在了解函數(shù)的使用時虐沥,先來看看void這個類型:它表示沒有任何類型,當(dāng)一個函數(shù)沒有返回值時泽艘,設(shè)置函數(shù)的函數(shù)的返回值是void
1.基本的函數(shù)
2.傳遞參數(shù)的函數(shù)function fn(): void {}
在傳遞參數(shù)的時候要為參數(shù)聲明類型,函數(shù)的返回值類型可以不寫類 型,但是參數(shù)的類型注解必須寫
3.函數(shù)的返回值function fn(n: number): void {} function fn(n: number镐依,s: string): void {} function fn(n: number, ag: number[]): void {}
沒有返回值寫void匹涮,當(dāng)然返回值類型注解可以省略function fn(n: number): number{} function fn(n: number,s: string): void {} function fn(n: number, ag: number[]): string[]{}
- 對象
1.先聲明對象的每個成員的類型槐壳,方法要指明返回值類型
2.你也可以一步到位let person1: { name: string, age: number, sing: () => void, sum: (n1: number, n2: number) => number } person1 = { name: "張三", age: 23, sing: function () { console.log("ni hao"); }, sum: function (n1: number, n2: number) { return n1 + n2 } }
let cars : { name: string, weigth: number, height: number } = { name: "大眾", weigth: 210, height: 140 }
類型推斷
看了類型注解是不是頭都大了然低??哈哈
其實有時候我們是可以不用寫類型注解的,所謂類型推斷就是TypeScript可以通過變量值倒推變量類型
1.聲明的同時就賦值
let age = 20
雖然沒有顯式的聲明類型务唐,但是賦值是什么類型雳攘,他就是什么類型,ts會自動判斷枫笛,所以也不可以改變它的類型
2.就是函數(shù)返回值啦