1. 程式人生 > 其它 >TypeScript入門淺析

TypeScript入門淺析

概述

  • 解決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,

}