typescript 索引型別

2021-10-07 17:29:07 字數 1093 閱讀 8348

1.索引型別

let obj =

;function

getkey

(obj : any , keys : string)

//指定所包含的屬性

console.

log(

getkey

(obj,

["a"

,"b"])

);//放入不包含的屬性,正常情況我們希望這種要報錯

console.

log(

getkey

(obj,

["c"

,"f"])

);

1.2 接下來學習幾種方法概念

// keyof t

inte***ce

obj;

let key : keyof obj;

// 自動轉換成 let key: "a" | "b"

// 索引訪問操作符合 t[k]

let value : obj[

"a"]

;//自動轉換成 let value: number

// t extends u

// 型別的繼承

1.3 學完上面幾種方法概念後,我們將上面的函式進行改造,如果傳入的字串不包含所屬屬性,那麼將報錯

function _getkeykextends

keyof

t>

(obj :

t, keys :k[

]):t

[k][

]

1.4 分析 從左往右看,t是約束obj的, k繼承了 t的聯合型別,所以此時k是聯合型別, t[k],聯合型別的返回值陣列

let _obj =

_getkey

(_obj ,

["a"

,"b"])

;// _getkey(_obj , ["c" , "e"]);//報錯

TypeScript 基礎型別

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

typescript 內建型別

ts關鍵字 ts 內建型別 partial 將內建屬性邊可選 required 將型別屬性邊必選 pick 從某個型別中挑出一些屬性 record mutable 將型別的屬性邊城可修改 readonly 型別的屬性變唯讀 returntype 用來得到乙個函式的返回值型別 的作用是斷言某個變數不會...

typeScript資料型別

布林型別 boolean 數字型別 number 字串型別 string 元組型別 tuple 列舉型別 enum 任意型別 any null和undefined void型別 never型別 注意 寫ts 定義變數要指定型別 var flag boolean true flag 123 報錯 fl...