# typeScript 布魯斯 https://www.youtube.com/watch?v=GinkGJZBHIY https://basarat.gitbook.io/typescript/ https://github.com/jkchao/typescript-book-chinese https://www.youtube.com/watch?v=ahCwqrYpIuM 還沒看 必看不用買客 https://www.youtube.com/watch?v=BwuLxPH8IDs&t=25s ## 基本觀念 他會轉成js 基本是轉到ES5 所以如果用async會很長 如果要用新的ES 再命令提示輸入 touch tsconfig.json 可以指定版本 exnext是最新的意思 如果要用watch也要設定 lib是對於 dom的規劃  在ts裡面用js也是可以的 是js的靜態類別 靜態類別要在宣告時候加上屬性 跟 go java c一樣 動態是php js ruby python ## https://www.youtube.com/watch?v=dnDuUtQE7Cg ## type hint 宣告後面加入: 規範  當作變數的type hint  OOP寫法 推薦 還可以用圖片裡面第三行的 街口在:any 很有彈性  function也宣告 跟php一樣 沒有也要void  array  array 進階  **?**  html用法  ## 開始 第一 他會編譯成js 可以用tsc 檔名 跟php一樣她會就轉 當然你也可以用t --watch 檔名 去watch ## config tes --init 建立設置檔案 預設轉成es5 也是在裡面設置的 改設定之後直接 tes就能重啟了 裡面比較重要的是 outDir 跟 rootDir 進出口文黨  dist是编译后的文件,压缩版; src是源码文件 畫面可以debug的開關 sorceMap 跟webpack一樣  ## 定義變數 比較特別的是定義array裡面 還能定義tuple(元祖) array裡面可以 string int 這樣 不同型態 tuple還能做嵌套的喔  union聯盟(php 的mix) 還有Enum 當然Enum可以 改變不從0開始  object開始 一般來說她的type會抽出來 不然太亂了  但一般來說都用interFace 可以看下面interface的講解 賦值 可以用 ``` let cid: any = 1 let customerId = <number> cid or let customerId = cid as number ``` function 跟 php一樣 當然也能用mix的  interface 跟type一樣 但她不用 = 因為他本身就是一個obj  可以設定readonly 只能讀 不能set 可以用? 不一定要用 跟type差別在於 也可以定義 register() : string 限制returen的 https://stackoverflow.com/questions/37233735/interfaces-vs-types-in-typescript  可以用()簡潔  對了變數也可以prive public這樣去限制 預設就是public 但interface 在class實現 他限定的只能使用public 不能再幫他加入修飾詞 ## type vs interface interface可以擴充  interface可以用覆蓋的方式擴充 type不能會覆蓋 ## ? 跟php一樣 可以用在function 跟自訂 interface{ name?: sadas } 這樣 ## fetch之類的 Api 使用(AS)  利用as 如果很動態呢  給他unknown ## 泛型 使用時再決定  可以class function 之類的 都可以用到  ## utility  能用到key value都宣告 ## pick  把其他的減幾個過來用 ## omit  跟pick 相反 把其他的過濾幾個來用 ###### tags: `typeScript`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up