最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

TypeScript工具類 Partial 和 Required 的場(chǎng)景分析

 更新時(shí)間:2022年09月28日 10:04:11   作者:南風(fēng)晚來晚相識(shí)  
這篇文章主要介紹了TypeScript工具類 Partial 和 Required 的詳細(xì)講解,本文通過場(chǎng)景描述給大家詳細(xì)講解工具類的使用,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

場(chǎng)景描述:

場(chǎng)景描述:一個(gè)接口(IPerson)有很多個(gè)的字段,可能有幾百。而且這些字段都是必須的。
我們需要使用這個(gè)接口,但是我又不可能使用它的全部??赡苤粫?huì)使用幾個(gè)。
我還必須要使用這接口。這個(gè)時(shí)候,我們?cè)趺唇鉀Q這個(gè)問題呢?
TS給了我們一個(gè)工具類Partial,可以解決這隔辦法
Partial  [ pɑ r?l ] [部分的]
使用的方式就是 let obj:Partial<接口名>={  }

工具類的使用 Partial

// 這個(gè)接口有這些的字段
interface IPerson {
    name: string;
    age: number;
    sex: "男" | "女"; //只能夠是男或者女,
    address: string,
    xueli: string,
    like: string[],
    height: string,
    weight:number,
    // 可能這個(gè)接口還有很多字段
 }

// 現(xiàn)在我要使用IPerson這個(gè)接口去聲明name, age, sex。
// 我們就可以使用工具類 Partial。Partial表示我只使用接口中的部分聲明
let zhang: Partial<IPerson> = {
    name: '張三',
    age: 10,
    sex: '女'
}

Partial 是怎么做的

我們將光標(biāo)放在 Partial 上可以看見這樣的描述
type Partial<T> = { [P in keyof T]?: T[P] | undefined; }
什么意思呢? 我們知道<T>是一個(gè)接口。 
[P in keyof T] 中的T其實(shí)就是 IPerson 這個(gè)接口
簡(jiǎn)單點(diǎn)就是翻譯成了下面這樣的樣子
{
    name ?: string | undefined,
    age ?: number | undefined
    sex ?:  "男" | "女" | undefined
   這樣的形式下去
}
通過 Partial 【怕 show兒】聲明后就不會(huì)報(bào)錯(cuò)。達(dá)到使用接口的部分聲明

場(chǎng)景描述

interface IInfoPerson {
    name: string;
    age: number;
    address?: string,
    like?: string[],
}
我們之前聲明了一個(gè)接口。其中有幾個(gè)字段是可選的(address,like )。
現(xiàn)在我們恰好需要使用這個(gè)接口,不過有幾個(gè)的可選字段要變?yōu)楸仨氉侄巍?
我們?cè)趺唇鉀Q這個(gè)問題呢?
1.重新聲明一個(gè)接口??梢越鉀Q,但是這樣不好。
2.不用管它。我們心里在使用的時(shí)候知道這幾個(gè)可選的字段是必須字段
3.使用 Required 讀音[r? ?kwa? ? d ] 

工具類 Required的簡(jiǎn)單使用

// 有兩個(gè)可選字段
interface IInfoPerson {
    name: string;
    age: number;
    address?: string,
    like?: string[],
}

// 通過 Required 將可選字段變?yōu)楸仨氉侄?
let lisi: Required<IInfoPerson> = {
    name: '李四',
    age: 10,
    address: '在羅翔老師的視頻中',
    like:['吃飯','睡覺']
}

// 通過 Required 將可選字段變?yōu)楸仨氉侄?【這個(gè)會(huì)報(bào)錯(cuò)】
let zhang: Required<IInfoPerson> = {
    name: '張三',
    age: 10,
}

Required是怎么做的?

光標(biāo)放在 Required 上會(huì)出現(xiàn)下面的提示內(nèi)容
type Required<T> = { [P in keyof T]-?: T[P]; }
這里的 -? 就是抵消掉問號(hào) ?
這就變成了 
{
    name: string;
    age: number;
    address: string,
    like: string[],
}
這樣就不可以缺省了

到此這篇關(guān)于TypeScript工具類 Partial 和 Required 的詳細(xì)講解的文章就介紹到這了,更多相關(guān)TypeScript工具類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

乌兰浩特市| 三门峡市| 兴国县| 平泉县| 沂水县| 大厂| 樟树市| 全椒县| 阿克| 青阳县| 呼伦贝尔市| 黄梅县| 襄樊市| 苏尼特左旗| 乐业县| 社会| 襄汾县| 确山县| 尼玛县| 东辽县| 尤溪县| 安庆市| 丽江市| 浑源县| 通辽市| 屏南县| 穆棱市| 盖州市| 高雄市| 亳州市| 平乡县| 宜川县| 昂仁县| 新龙县| 北海市| 新泰市| 无为县| 云南省| 扎赉特旗| 名山县| 杭锦旗|