TypeScript入門淺析
阿新 • • 發佈:2020-12-13
概述
-
解決JavaScript型別系統的問題
-
大大提高程式碼可靠程度
強型別與弱型別
-
型別安全
-
強型別:
- 語言層面限制函式的實參型別必須與形參型別相同
- 有更強的型別約束
- 不允許任意的隱式型別轉換
弱型別:
- 語言層面不限制實參型別
- 幾乎沒有約束
- 允許任意的隱式型別轉換(理解)
一、安裝
//安裝
npm i -g typescript
//檢查安裝是否成功
tsc -v // Version ****
新建test.ts檔案,輸入程式碼並執行
const hello = (name: string)=>{ console.log("hello:",name) } hello('顧哥哥')
//執行ts檔案
tsc test
發現多出了test.js檔案
二、ts語法
1、原始資料型別和any型別
基本型別(單型別):
- String
- Number(NaN也是一種number,非number)
- Boolean
- Null
- Undefined
- BigInt
- Symbol
引用型別:
- object。裡面包含的 function、Array、Date。
let isDOne:boolean = false let age:number = 10 let firstName:string = "顧哥哥" let msg:string = `hello, ${firstName}` let u:undefined = undefined let n:null = null let getName:Object = (name:String)=>{ console.log(name) } //未明確型別是使用any let notsure:any = 4 notsure = '豬豬' notsure = null notsure = undefined notsure = getName
2、陣列和元組
let arrOfNumbers:number[] = [1,2,3,'123'] //不可,元素必須為number
arrOfNumbers.push('123')//不可,進入元素必須為number
//元組
let user:[string,number] = ['111',111]
user.push('111') //僅能新增已定義型別其中一種
user.push(22)
user.push(undefined)//不可,進入元素必須為string/number
3、Interface介面
interface IPerson { name:string; age:number; tel?:number;//?可選 代表 (不強制實現該屬性) readonly id?:number; //readonly只讀,賦值後不可改變 } let viking:IPerson = { name: 'viking', age:20, }