当前位置: 首页 > news >正文

大连网站优化方案厦门关键词优化报价

大连网站优化方案,厦门关键词优化报价,上虞做网站,网站经营内容typescript是js的超集,目前很多前端框架都开始使用它来作为项目的维护管理的工具,还在不断地更新,添加新功能中,我们学习它,才能更好的在的项目中运用它,发挥它的最大功效 //泛型 > 参数和返回值类型相…

typescript是js的超集,目前很多前端框架都开始使用它来作为项目的维护管理的工具,还在不断地更新,添加新功能中,我们学习它,才能更好的在的项目中运用它,发挥它的最大功效

//泛型 => 参数和返回值类型相同

//泛型的声明方式:
//语法:在函数名称后面添加<>,里面添加类型变量,比如下面T
//类型变量T,是一种特殊类型的变量,它处理类型而不是值
//该类型变量相当于一个类型容器,能够捕获用户提供的类型(具体是什么类型,由用户调用该函数时指定)
//因为T是类型,因此可以将其作为函数参数和返回值的类型,表示参数和返回值具有相同的类型
//变量类型type,可以是任意合法的变量名称

function id<T>(name: T): T {return name
}let num = id<number>(10)
let str = id<string>('a')
//调用的时候可以省略类型<>
let num1 = id(200)

//泛型约束
//number上就没有length属性
//此时就需要为泛型添加约束来收缩类型(缩窄类型取值范围)
//1.指定更加具体的类型

// function getId<T>(value: T): T {//之类会报错
//     console.log(value.length)
//     return value
// }// getId('zzzzzzzzz')
// getId(333333)function getId<T>(value:T[]): T[] {console.log(value.length)return value
}

//2.添加约束,是只最类型变量T进行约束

interface ILength {length:number
}
//该约束表示,传入的类型必须有length属性
function getIds<T extends ILength>(value:T):T {console.log(value.length)return value
}getIds<string>('11111111111111')
getIds([1,2,3,4,54])//错误演示
getIds(10)

//类型变量可以有多个,并且类型变量之间还可以相互约束
//keyof后面接收对象类型,生成键名,不是接收对象值

function getProps<T, K extends keyof T>(obj: T, key: K) {return obj[key] 
}let obj = {name: 'gaofeng',age:20
}getProps(obj, 'name')
getProps(obj, 'age')
getProps(18,'toFixed')//错误演示
getProps(obj, 'sex')
type c = keyof obj

//泛型接口

interface IdFunc<T>{ID: (value: T) => Tids: () => T[]
}let obj: IdFunc<number> = {ID(value) {return value},ids() {return []}
}obj.ID(1111)
```js//泛型数组
```js
const arr = ['1', '2']
arr.forEach

//泛型类

class Foo<T>{defaultValue: Tadd: (x: T, y: T) => T constructor(value: T) {this.defaultValue = value}
}
// const myNums = new Foo<number>(200)
const myNums = new Foo(200)myNums.defaultValue = 40
myNums.add(10,20)

//泛型工具类
//Partial 将所有属性设置为可选,构建出一个新的类型
//Readonly 将所有的属性设置为只读,构建出一个新的类型
//Pick 从Type中选择一组属性来构造新的类型
//Record构造一个对象类型,属性键为对象类型keyskeys,属性类型为Type

interface Props {id: string,children:number[]
}//错误演示let obj: Props = {id: '11111'//此处没加chichildren属性会报错
}type PartialProps = Partial< Props >//这里就不会报错
let obj2: PartialProps = {id:'222222222'
}type ReadonlyProps = Readonly<Props>let obj3: ReadonlyProps = {id: 'xxxxxxx',children:[22222]
}
//这里就会报错,不能修改
obj3.id = '44444444444'interface PickType {id: stringtitle: stringchildren:number[]
}type PickProps = Pick<PickType, 'id' | 'title'>let obj4: PickProps = {id: '1111111',title: 'hahahaha',
}type RecordObj = Record<'a' | 'b' | 'c', string[]>let obj6: RecordObj = {a: ['a'],b: ['c'],c: ['jjjj']
}
http://www.dt0577.cn/news/44009.html

相关文章:

  • 室内设计公司有哪些部门宁波seo外包方案
  • php做的网站收录怎么学做电商然后自己创业
  • 国家新冠疫情最新政策重庆旅游seo整站优化
  • 网站建设银行业务预约纪念币猪年纪念币预约深圳网站设计十年乐云seo
  • 靠广告赚钱的网站备案华为手机软文范文300
  • 兼职网站做任务长春网站建设公司哪个好
  • 苏州做网站优化的公司网站接广告
  • 做美工好的网站百度首页登录官网
  • 如何建设网站效果好苏州seo招聘
  • 灵武市建设银行网站深圳华强北
  • 怎么查网站建设是哪家公司在线看crm系统
  • 海城网站制作郑州整站关键词搜索排名技术
  • 网站栏目内容和功能百度推广代运营公司
  • 网站建设提升界面流畅程度百度关键词推广方案
  • 美女 wordpress网站推广优化的原因
  • 郑州做网站的公司百度云盘网页登录入口
  • 彩票网站模版网络营销课程总结
  • 全自动网站制作源码5g站长工具查询
  • 三级a做爰网站网络平台推广有哪些渠道
  • 附近的网站设计开发信息流广告文案
  • 钓鱼网站查询系统泰州网站整站优化
  • 建设公司网站多少钱托管竞价账户哪家好
  • 罗湖网站制作搜索引擎优化报告
  • 定制开发网站 推广seo技术快速网站排名
  • vip解析网站怎么做百度一下官网首页百度
  • 有创意的个人网站名字郑州网站公司哪家好
  • 注册公司网上申请入口网站郴州seo网络优化
  • 网站友情链接如何做百度关键词排名提升工具
  • 苏州做公司网站seo哪个软件好
  • 什么样的网站流量容易做合肥网络关键词排名