日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TypeScript 的 Object Types

發布時間:2023/12/19 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TypeScript 的 Object Types 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有三種方式定義 TypeScript 的 object Types.

1. 匿名類型 - anonymous type

function greet(person: { name: string; age: number }) {return "Hello " + person.name; }

2. 使用 interface

interface Person {name: string;age: number; }function greet(person: Person) {return "Hello " + person.name; }

3. 使用 type alias

type Person = {name: string;age: number; };function greet(person: Person) {return "Hello " + person.name; }

對象類型中的每個屬性都可以指定幾項內容:類型、屬性是否可選以及是否可以寫入該屬性。

read only 屬性

使用 readonly 修飾符并不一定意味著一個值是完全不可變的——或者換句話說,被 readonly 修飾的屬性,并不意味著它的內部內容不能改變。 這只是意味著屬性本身不能被重寫。

interface Home {readonly resident: { name: string; age: number }; }function visitForBirthday(home: Home) {// We can read and update properties from 'home.resident'.console.log(`Happy birthday ${home.resident.name}!`);home.resident.age++; }function evict(home: Home) {// But we can't write to the 'resident' property itself on a 'Home'.home.resident = { Cannot assign to 'resident' because it is a read-only property.Cannot assign to 'resident' because it is a read-only property.name: "Victor the Evictor",age: 42,}; }

Index Signatures - 索引簽名

有時您事先并不知道類型屬性的所有名稱,但您確實知道值的形狀。

在這些情況下,您可以使用索引簽名來描述可能值的類型,例如:

interface StringArray {[index: number]: string; }const myArray: StringArray = getStringArray(); const secondItem = myArray[1];

StringArray 的含義是,我們有一個 StringArray 接口,它有一個索引簽名。 此索引簽名指出,當 StringArray 用數字索引時,它將返回一個字符串。

Whenever we write out types like number[] or string[], that’s really just a shorthand for Array<number> and Array<string>.

number[] 和 string[] 是 Array<number> 和 Array<string> 的簡寫。

Turple - 元組

元組類型是另一種數組類型,它確切地知道它包含多少個元素,以及它在特定位置包含哪些類型。

這里,StringNumberPair 是字符串和數字的元組類型。 與 ReadonlyArray 一樣,它在運行時沒有表示,但對 TypeScript 很重要。 對于類型系統,StringNumberPair 描述了數組,其 0 索引包含一個字符串,其 1 索引包含一個數字。

元祖的析構

元組類型在大量基于約定的 API 中很有用,其中每個元素的含義都是“顯而易見的”。 這使我們在解構變量時可以靈活地命名變量。 在上面的示例中,我們可以將元素 0 和 1 命名為我們想要的任何名稱。

但是,由于并非每個用戶都對顯而易見的事情持有相同的看法,因此可能值得重新考慮使用具有描述性屬性名稱的對象是否對您的 API 更好。

總結

以上是生活随笔為你收集整理的TypeScript 的 Object Types的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。