成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

TypeScript 初識 - 高級類型

CatalpaFlat / 1715人閱讀

摘要:聯(lián)合類型聯(lián)合類型表示一個值可以時集中類型之一,使用進行分隔每種類行。聯(lián)合類型的變量在被賦值的時候,根據(jù)類型推論的規(guī)則,推斷出一個類型。

聯(lián)合類型

聯(lián)合類型表示一個值可以時集中類型之一,使用 | 進行分隔每種類行。

聯(lián)合類型的變量在被賦值的時候,根據(jù)類型推論的規(guī)則,推斷出一個類型。

聯(lián)合類型的變量當被推斷出類型后,就變得和正常聲明的變量一樣:

let ffffd: string | number;
ffffd = "hello world";
// ffffd被推斷成了 string,訪問 length 屬性不會報錯
console.log(ffffd.length);
ffffd = 255;
// 報錯 ffffd 被推斷成了 number,訪問 length 屬性時就報錯了
console.log(ffffd.length);

聯(lián)合類型的變量沒有被推斷出類型時,這個變量只能訪問聯(lián)合類型中所有類型共有的屬性:

function func(name: string, age: string | number) {
    // Error,Property "length" does not exist on type "string | number".Property "length" does not exist on type "number".
    console.log(age.length);
    // 編譯通過
    console.log(age.toString());
}
交叉類型

交叉類型是將多個類型合并為一個類型,交叉類型的變量擁有所有類型的所有屬性、方法,使用 & 進行合并類型:

function extend(first: T, second: U): T & U {
    const result = {};
    for (let id in first) {
        (result)[id] = first[id];
    }
    for (let id in second) {
        if (!result.hasOwnProperty(id)) {
            (result)[id] = second[id];
        }
    }

    return result;
}

const x = extend({ a: "hello" }, { b: 42 });

// 現(xiàn)在 x 擁有了 a 屬性與 b 屬性
const a = x.a;
const b = x.b;

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/106783.html

相關(guān)文章

  • TypeScript 初識 - 函數(shù)

    摘要:函數(shù)類型函數(shù)返回值類型我們可以給每個參數(shù)添加類型之后再為函數(shù)本身添加返回值類型。能夠根據(jù)返回語句自動推斷出返回值類型,所以通??梢允÷运涿瘮?shù)完整函數(shù)類型完整的函數(shù)類型包含兩部分參數(shù)類型和返回值類型。 函數(shù)是 JavaScript 的第一等公民,函數(shù)在 JavaScript 中可以實現(xiàn)抽象層、模擬類、信息隱藏和模塊等等。TypeScript 在一定基礎(chǔ)上擴展了函數(shù)的功能。 函數(shù)類型 ...

    ARGUS 評論0 收藏0
  • TypeScript 初識 - 變量

    摘要:通常會定義為函數(shù)的返回值一個類型的變量是沒有生命用處的,因為類型的變量只能賦值為。和有一些區(qū)別的,函數(shù)沒有返回值時返回類型為的方法,即使沒有寫明語句,也會在函數(shù)執(zhí)行完的時候,隱式地返回一個類型。中新增加的變量聲明方式。 類型注解 類型注解使用 :TypeAnnotation 語法。類型聲明空間中可用的任何內(nèi)容都可以用作類型注解。 const num: number = 123; fun...

    dinfer 評論0 收藏0
  • TypeScript 初識 - 內(nèi)置對象

    摘要:自帶的內(nèi)置對象都可以直接在中當作定義好的類型。的內(nèi)置對象標準提供了常用的內(nèi)置對象等。在不需要額外引入就可以直接使用這些內(nèi)置對象用寫不是內(nèi)置對象的一部分,想要寫時提示,需要引入第三方聲明文件 JavaScript 自帶的內(nèi)置對象都可以直接在 TypeScript 中當作定義好的類型。 TypeScript 核心庫的定義文件 TypeScript 核心庫的定義文件定義了所有瀏覽器環(huán)境需要用...

    lordharrd 評論0 收藏0
  • TypeScript 初識 - 接口

    摘要:接口的作用是聲明變量的結(jié)構(gòu)和方法,但不做具體的實現(xiàn)。這兩個使用場景不同。額外的屬性檢查從字面上的意思看,其實就是對接口未定義的屬性進行檢查。上面的例子,定義了接口,它具有索引簽名。它不會幫你檢查類是否具有某些私有成員。 接口的作用是聲明變量的結(jié)構(gòu)和方法,但不做具體的實現(xiàn)。通常,接口會強制對所有成員進行類型檢查,包括數(shù)量和類型: interface Name { first: s...

    gnehc 評論0 收藏0
  • TypeScript 初識 - 枚舉

    摘要:當滿足以下條件時,枚舉成員被當作是常數(shù)不具有初始化函數(shù)并且之前的枚舉成員是常數(shù)。在這種情況下,當前枚舉成員的值為上一個枚舉成員的值加。但第一個枚舉元素是個例外。枚舉成員使用常數(shù)枚舉表達式初始化。 數(shù)字類型枚舉 常規(guī)枚舉的值都是數(shù)字類型,因此被稱為數(shù)字類型枚舉: enum Color { Red, Blue, Green } console.log(Color.R...

    molyzzx 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<