第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

【金秋打卡】第8天 Web前端架構師2022版

標簽:
Html5

课程章节: 第8周 前端基础技术回顾和巡礼

主讲老师:张轩

课程内容:

今天学习的内容包括:

2-5 源码解析:深入泛型
2-6 源码解析 :高级特性
2-7 源码解析 extends 的妙用

课程收获:

我们来看一下Partial的原始写法,是这样写的

type Partial<T> = {
    [P in keyof T]?: T[P];
};

解决方案

  • 拿键的数组 - keyof 取得一个字符串字面量的联合类型
  • 循环这个键的数组 - mapped types 使用 in 关键字 循环
  • 怎样取得键的值 - lookup types 使用key 取得相应的值
// keyof
type Keys = keyof CountryResp
// lookup types
type NameType = CountryResp['name']
// mapped types
type Test = {
  [key in Keys]: any
}
type CountryOpt = {
  [p in Keys]?: CountryResp[p]
}

extends 的用法
约束泛型

function echoWithArr<T extends IWithLength>(arg: T): T {
  console.log(arg.length)
  return arg
}

const arrs = echoWithArr([1, 2, 3])
const str = echoWithArr('123')
const obj = echoWithArr({length: 123, width: 'hello' })

条件类型关键字

T extends U ? X : Y
// 看起来是不是非常像三元运算符,其实道理也是一样的。我们来看一个例子
type NonType<T> = T extends null | undefined ? never : T; // 如果泛型参数 T 为 null 或 undefined,那么取 never,否则直接返回T。 
let demo1: NonType<number>; // => number 
let demo2: NonType<string>; // => string 
let demo3: NonType<null>; // => never

图片描述

图片描述

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消