TypeScript 筆記
typescript 雖然加大了工作量,但是可以降低后期維護成本,可以做到代碼即文檔。
TypeScript上手第一步
- 安裝
npm install -g typescript - 編譯一個ts文件
tsc hello.ts - 推薦使用編輯器VScode
http://code.vusyalstudio.com/
基本聲明類型
- 在變量后面使用:(類型)即可 如下
- let a : string = "abc"
- 空值
- js中沒有空值的概念,在ts中,void可以表示沒有任何返回的函數
- 聲明一個void變量沒有什么用,因為他只能是undefined和null
- 任意值
- 聲明了類型就不允許該變量擁有其他類型的值,這時候就需要一個任意變量類型
- 聲明一個任意值之后,對他任何操作返回的都是任意值
- 如果一個變量未被聲明類型,那么他的類型就是任意值
- 類型推論
- ts會在沒有明確聲明的時候推測一個類型
- 聯合類型
- 可以使用|進行多個類型聲明
- 對象類型 --- 接口
- interface Person{ name:string }; let a : Person ={ name:"abc" }
- interface會聲明一個接口,然后這個接口可以定義對象里面的值跟類型
- 這里聲明幾個屬性,就只能寫幾個屬性,多了就會報錯。
- 如果希望接口有一個未定義的屬性就可以寫[propName:string]:any來聲明可以有一個未聲明屬性的存在
- 如果想定義一個可有可無的屬性那么可以寫age?:number
- 那么這個屬性就可有可無,不是必要的屬性
- 如果想定義一個不可被修改的只讀屬性可以使用 readonly id: number 來定義
- 數組類型
- 數組的聲明類型跟基本類型用法一樣,也可以用接口表示
- 一般數組就給一個any是最常用的
- 其他不常用的就見官網講解吧= =
- 函數類型
- 參數定義類型,並且傳參的時候不可以傳遞多余的參數
- 參數定義了就是必填的,要么就定義可選參數或者用擴展運算接收參數
- 擴展運算符也是要定義類型的,一般用any即可
- function sum():number 這里是return的數據類型
- 類型斷言
- 斷言可以手動指定一個值的類型。
- 寫法: 值 as 類型。
- 我。。。這個東西寫起來好復雜,去阮一峰文檔看吧,一兩句說不清楚,要想寫下去估計我得復制很多東西。
- 一般解決ts中應該不報錯卻報錯了的問題,不常用。
- 聲明文件
- 斷言可以手動指定一個值的類型。
- 寫法: 值 as 類型。