成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

TypeScript 初識(shí) - 高級(jí)類型

CatalpaFlat / 1756人閱讀

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

聯(lián)合類型

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

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

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

let ffffd: string | number;
ffffd = "hello world";
// ffffd被推斷成了 string,訪問(wèn) length 屬性不會(huì)報(bào)錯(cuò)
console.log(ffffd.length);
ffffd = 255;
// 報(bào)錯(cuò) ffffd 被推斷成了 number,訪問(wèn) length 屬性時(shí)就報(bào)錯(cuò)了
console.log(ffffd.length);

聯(lián)合類型的變量沒(méi)有被推斷出類型時(shí),這個(gè)變量只能訪問(wè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);
    // 編譯通過(guò)
    console.log(age.toString());
}
交叉類型

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

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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/106783.html

相關(guān)文章

  • TypeScript 初識(shí) - 函數(shù)

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

    ARGUS 評(píng)論0 收藏0
  • TypeScript 初識(shí) - 變量

    摘要:通常會(huì)定義為函數(shù)的返回值一個(gè)類型的變量是沒(méi)有生命用處的,因?yàn)轭愋偷淖兞恐荒苜x值為。和有一些區(qū)別的,函數(shù)沒(méi)有返回值時(shí)返回類型為的方法,即使沒(méi)有寫(xiě)明語(yǔ)句,也會(huì)在函數(shù)執(zhí)行完的時(shí)候,隱式地返回一個(gè)類型。中新增加的變量聲明方式。 類型注解 類型注解使用 :TypeAnnotation 語(yǔ)法。類型聲明空間中可用的任何內(nèi)容都可以用作類型注解。 const num: number = 123; fun...

    dinfer 評(píng)論0 收藏0
  • TypeScript 初識(shí) - 內(nèi)置對(duì)象

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

    lordharrd 評(píng)論0 收藏0
  • TypeScript 初識(shí) - 接口

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

    gnehc 評(píng)論0 收藏0
  • TypeScript 初識(shí) - 枚舉

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

    molyzzx 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<