typescript基礎 函式

2021-10-23 06:10:35 字數 1875 閱讀 5042

函式的輸入輸出要進行型別的定義,函式的引數一旦定義好以後,輸入多或者少都是會編譯報錯的,返回型別也必須跟定義的一致;

// 1

function

fun(a: string, b: number)

: number

// 2 這種寫法只對右側的匿名函式進行了型別定義,左側的funs只能通過型別推斷得出

const

funs

=function

(a: string, b: number)

:number

// 3 等號兩側都進行了型別定義

const funs:

(a: string, b: number)

=>

number

=function

(a: string, b: number)

: number

// 這裡的 => 不要跟es6裡的箭頭函式混淆,ts裡用於表示函式的定義,左邊是輸入型別,需要用括號括起來;右邊是輸出型別

通過?可以指定可選引數,如下:

function

fun(a: number, a2: string=

'2', b?

: string)

:number

注意:

可以通過es6展開操作符來指定剩餘引數, 當前剩餘引數只能是最後乙個引數

function

fun(array: any,

...rest: any)

:any[

]

通過這種方式 可以對函式表示式定義的函式 進行等號左側的型別定義,保證了傳入的引數和返回值型別不變

inte***ce

func

let myfunc: func;

myfunc

=function

(a: string, b: number)

:boolean

也可以使用含有泛型的介面來定義函式的形狀

inte***ce

createarrayfunc

// 可以把泛型引數提到介面名上

// inte***ce createarrayfunc

let createarray: createarrayfunc

;createarray

=function

<

t>

(length: number, value:

<

t>

): array<

t>

過載允許乙個函式接受不同的數量或型別的引數時,作出不同的處理;

可以通過聯合型別來實現不同的處理,但是表達起來不夠精確。(例如如下方法,對引數反轉,用聯合型別無法表達清楚,傳入的是數字型別,返回也是數字型別。)

通過過載,可以表達清晰;在寫過載時,前幾次都是定義,最後乙個才是具體的函式實現。

// ts會按照定義順序,自上而下匹配,如果多個函式定義有包含關係,需要優先把精確的定義寫在前面。

function

reverse

(x: number)

: number;

function

reverse

(x: string)

: string;

function

reverse

(x: number | string)

: number | string

elseif(

typeof x ===

'string'

)}

TypeScript 基礎型別

基礎型別可以依據是否含有型別關鍵字分為兩類 注意 所有型別關鍵字都是小寫的。注 這種分類並不嚴謹,分類的目的僅僅用於幫助記憶型別用來指定變數的型別,相容的型別之間才能進行賦值 傳參等操作。宣告變數型別使用變數名 型別格式,如let decimal number 10,宣告之後decimal就只能接受...

typeScript基礎總結

使用 npm cnpm yarn 進行全域性安裝 檢視版本tsc v執行 ts 檔案tsc test.ts執行完成後會生成 js 檔案 自動執行 ts 檔案資料型別 關鍵字描述 任意型別 any宣告為 any 的變數可以賦予任意型別的值。數字型別 number 它可以用來表示整數和分數。字串型別 s...

(TypeScript篇)一 基礎

1 安裝命令 npm install g typescript 2 檢視ts版本號 ps ts指的是typescript tsc v 3 編譯命令 tsc 檔名.ts 1 布林型別 let isdone boolean false 2 數字型別 let age number 25 let binar...