TypeScript 介面 可選屬性
有時介面所規定的屬性不是必須的,或者在滿足一定條件的時候才需要。
程式碼例項如下:
[typescript] 純文字檢視 複製程式碼interface Itest { webName: string; age?:number; }
上面程式碼規定age是可選的,在屬性名稱後面新增一個問號(?)。
程式碼例項如下:
[typescript] 純文字檢視 複製程式碼interface Itest { webName: string; age?:number; } function func(obj: Itest) { console.log(obj.webName); } let myObj = { webName:"螞蟻部落", address:"青島市南區" }; func(myObj);
由於age是可選屬性,所以傳遞的引數可以沒有age屬性。
[typescript] 純文字檢視 複製程式碼interface Itest { webName: string; age?:number; } function func(obj: Itest) { console.log(obj.webName); } let myObj = { webName:"螞蟻部落", age: "ts", address:"青島市南區" }; func(myObj);
即便age是可選屬性,一旦傳遞了age屬性,那麼它也要接受約束。
[typescript] 純文字檢視 複製程式碼interface Itest { webName: string; age?:number; } function func(obj: Itest) { console.log(obj.webName); } func({ webName:"螞蟻部落", age: "ts", address:"青島市南區" });
引數以直接量方式傳遞,那麼不能具有額外的屬性,在TypeScript 介面簡介一文已經介紹。
strictNullChecks:true的影響:
如果在tsconfig.json檔案中配置"strictNullChecks":true,那麼可選屬性會被自動地加上| undefined。
程式碼例項如下:
[typescript] 純文字檢視 複製程式碼interface Itest { webName: string; age?:number; } function func(obj: Itest) { console.log(obj.webName); } let myObj = { webName:"螞蟻部落", age: 5, address:"青島市南區" }; func(myObj);
程式碼執行效果截圖如下:
特別說明:此語法並不僅作用域介面可選屬性。
相關文章
- TypeScript 介面 只讀屬性TypeScript
- 所有屬性都是可選的BusinessExceptionException
- TypeScript 類靜態屬性TypeScript
- JavaScript可摺疊屬性導航選單JavaScript
- TypeScript 學習筆記 — 自定義型別:部分屬性可選,反選 key,求物件交差並補集等(十三)TypeScript筆記型別物件
- css屬性的可繼承性CSS繼承
- [CSS]屬性選擇器CSS
- css可繼承屬性和非繼承屬性一覽CSS繼承
- vue3計算屬性的可寫屬性 set 與 getVue
- TypeScript 介面TypeScript
- Android property屬性許可權新增Android
- win10快捷方式點選彈出屬性介面怎麼解決Win10
- js可列舉屬性的遍歷JS
- CSS筆記——屬性選擇器CSS筆記
- TypeScript--介面TypeScript
- TypeScript(4)介面TypeScript
- Android開商品屬性篩選與商品篩選Android
- TypeScript 函式可選引數和預設引數TypeScript函式
- 如何在TypeScript程式碼裡獲得HTML元素的css屬性TypeScriptHTMLCSS
- 精讀《使用 CSS 屬性選擇器》CSS
- ArcPy批量選擇指定屬性的要素
- TypeScript 函式介面TypeScript函式
- TypeScript中的介面TypeScript
- TypeScript 介面繼承TypeScript繼承
- 1688商品詳情資料介面、商品列表介面,商品屬性介面、商品優惠券介面
- CMake 屬性之全域性屬性
- 淺談TypeScript對業務可維護性的影響TypeScript
- Linux 基礎-檔案許可權與屬性Linux
- 屬性動畫跳轉展示資料(可切換可搜尋)動畫
- 商品屬性的選擇功能的實現
- win10系統u盤屬性沒有安全選項怎樣修改許可權Win10
- defer 屬性和 async 屬性
- [譯]Typescript : 類 vs 介面TypeScript
- TypeScript 類實現介面TypeScript
- TypeScript 介面繼承類TypeScript繼承
- [譯]JS Tips:選擇(picking)和反選(rejecting)物件的屬性JS物件
- Zookeeper(2)---節點屬性、監聽和許可權
- CSS 屬性篇(七):Display屬性CSS