国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

TypeScript入門-接口

2024-05-06 15:19:10
字體:
供稿:網(wǎng)友

大致介紹

在TypeScript里,接口的作用就是為這些類型命名和為你的代碼或第三方代碼定義契約。

接口

例子:

  function printLabel(labelledObj: { label: string }) {   console.log(labelledObj.label);  }  let myObj = { size: 10, label: "Size 10 Object" };  printLabel(myObj);

printLabel函數(shù)有一個參數(shù),要求這個參數(shù)是個對象,并且有一個屬性名為label的類型為string的屬性

有時我們會傳入多個參數(shù),但是只檢測指定的參數(shù)有沒有

用接口來實現(xiàn)上面的例子:

interface LabelledValue {   label: string;  }  function printLabel(labelledObj: LabelledValue) {   console.log(labelledObj.label);  }  let myObj = {size: 10, label: "Size 10 Object"};  printLabel(myObj);

注意:要用到關(guān)鍵字 interface

可選屬性

有時接口里的屬性不是必須的是可選的,那么只要加個?就可以了

interface SquareConfig {   color?: string;   width?: number;  }  function createSquare(config: SquareConfig): {color: string; area: number} {   let newSquare = {color: "white", area: 100};   if (config.color) {    newSquare.color = config.color;   }   if (config.width) {    newSquare.area = config.width * config.width;   }   return newSquare;  }  let mySquare = createSquare({color: "black"});

上面的代碼中 config:SquareConfig規(guī)定了函數(shù)參數(shù), {color: string;area: numner}規(guī)定了函數(shù)返回值的類型

使用可選屬性的好處:

1、可以對可能存在的屬性進行定義

2、可以捕獲訪問不存在的屬性時的錯誤

只讀屬性

如果向讓一個值只讀,不可以修改就可以使用readonly

interface Point {    readonly x: number;    readonly y: number;  }  let p1: Point = { x: 10, y: 20 };  p1.x = 5; // error!

TypeScript具有ReadonlyArray<number>類型,它與Array<T>相似,只是把怕有可變方法去掉了,因此可以確保數(shù)組創(chuàng)建后再也不能被修改:

  let a: number[] = [1, 2, 3, 4];  let ro: ReadonlyArray<number> = a;  ro[0] = 12; // error!  ro.push(5); // error!  ro.length = 100; // error!  a = ro; // error! 

額外的屬性檢查

看一個例子:

interface SquareConfig {    color?: string;    width?: number;  }  function createSquare(config: SquareConfig): { color: string; area: number } {    // ...  }  let mySquare = createSquare({ colour: "red", width: 100 });

起初會認為這個是對的,接口定義了兩個可選屬性color和width。函數(shù)實際傳入了width屬性和一個接口沒有定義的colour屬性,但是這段代碼會報錯。

對象字面量會被特殊對待而且會經(jīng)過額外屬性檢查,當將它們賦值給變量或作為參數(shù)傳遞的時候。 如果一個對象字面量存在任何“目標類型”不包含的屬性時,你會得到一個錯誤。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 会宁县| 高淳县| 新绛县| 尤溪县| 鄂托克前旗| 大港区| 伊金霍洛旗| 宁化县| 称多县| 崇明县| 宁化县| 海门市| 普安县| 合作市| 凌源市| 新民市| 苍南县| 张家口市| 曲沃县| 桂阳县| 云梦县| 长顺县| 萍乡市| 宁河县| 辽阳县| 竹溪县| 华阴市| 阳城县| 遂昌县| 绩溪县| 台前县| 栾川县| 武冈市| 屯昌县| 平武县| 比如县| 扶沟县| 扶沟县| 临朐县| 双桥区| 类乌齐县|