typescirpt 知识点
基礎類型
常見類型
就是變量類型聲明,和.NET,C#等面向對象語言一樣,int類型 double float類型,float,比如數據庫中的name: varchar(80)一樣,ts也提供了很好的支持,比如字段、屬性、方法,哈哈說遠了 ,在定義字段的時候會用到變量類型聲明,ts同理。
let age: number = 8; let name: string = '張三'; let favorite: string[] = ['踢足球','唱歌','跳舞',...] or favorite: Array<string> = ['玩游戲',...] // string[] 是 Array<string>的簡寫方式,類似的Array<number> 等同于 number[]元組tuple
定義一組已知不同類型的數組,比較繞口,直接上代碼,我現在用一個元組表示你的年齡,姓名,性別,成績。
let MathGrade:[number,string,string,number] = [18,'李四','男',98]現在我假定有一個成績表,李四的成績就是MathGrade[3]就可以直接拿到成績了,是不是很方便
總結:元組比數組更強大,印象中的js都是好像只能夠存放同一類型的數組,沒有嘗試過其他的
枚舉類型enum
類似提前聲明一組數據,這組數據中包含映射的默認值,這個東西和接口interface類似,但是這個有值,interface聲明的內容一般只有類型和返回類型。
元組類型中,默認下標index是走0開始的,你可以不給賦值,默認是0往后累加,但是和下標不一樣,這個下邊還是走0開始的,是因為我主動給賦值了,才red變成1的。創建的c結果就是3,按照正常默認情況結果就是2~
enum Color { red = 1, green = 2, blue = 3 } let c: Color = Color.blue; console.log(c) //3 console.log(Color[2]) //3any 類型
任意類型,在你定義一個變量不知道具體類型的時候就可以用到any,可能在后邊會動態復賦值。比如你在開始的時候就定義了一個
const grade:any; 因為我也不知道這是個什么類型,在后邊會完善它。就可以使用any,在定義函數的時候也是一樣的。當然所有變量、函數、泛型都可以使用any,但是這樣你使用typescript的意義在哪里呢
const grade:any; grade= {name: '李四',age: 28 }void 無返回值類型
無返回值類型,一般常見于面向對象語言定義函數的時候聲明public static void setName(index){ // dosomething }。es是沒有的,但是我們typescript給我們提供了,是不是很方便
const readIndex = (index):void =>{ console.log(index) }聲明一個void的變量沒有任何意義,大哥規定你你只能賦值兩個,undefined,null
const b:void = undefined const c:void = nullnull 和 undefined
在typescript中null和undefined變量是可以單獨聲明的,但是他們本身的用處并沒有想象中那么大,但是可以直接復制給其他string或者number值類型的變量,這將變的非常有效
const b: string = null const a: number = undefinednerver類型
對于永遠不存在的類型的第一個定義,比如定義一個函數報錯之后會返回什么,當然這種情況不會發生
// 返回never的函數必須存在無法達到的終點 function error(msg: string){throw new Error(message); } // 推斷的返回值類型為never function fail() {return error("Something failed"); }// 返回never的函數必須存在無法達到的終點 function infiniteLoop(): never {while (true) {} }Object 類型
object表示非原始類型,也就是除number,string,boolean,symbol,null或undefined之外的類型。簡單來講object是引用類型不是值類型。
declare function setInfo(info: Object | null):void {} // 只有在傳入對象類型和null類型的時候才不會報錯 setInfo({name:'李四'}) //ok setInfo(null) // ok setInfo(1) // error setInfo('李四') // error setInfo(undefined) // error setInfo(false) // error類型斷言
在某些時候你會比ts更加了解你定義的這個變量是什么類型的值,
類型斷言有兩種形式。 其一是“尖括號”語法:
另一個為as語法:
let someValue: any = "this is a string"; let strLength: number = (someValue as string).length;兩種形式是等價的。 至于使用哪個大多數情況下是憑個人喜好;然而,當你在TypeScript里使用JSX時,只有 as語法斷言是被允許的。
轉載于:https://www.cnblogs.com/HondryTravis/p/11138186.html
總結
以上是生活随笔為你收集整理的typescirpt 知识点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NRF52 UICR寄存器读写
- 下一篇: 使用 XML Schema 定义元素的基