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

工业设计作品网站高端品牌网站建设策划方案

工业设计作品网站,高端品牌网站建设策划方案,建设网站的叫什么职位,做商业网站的服务费维护费最近刷了本ts小册#xff0c;对一些知识点做下笔记。 extends extends 是一个关键字#xff0c;用于对类型参数做一些约束。 A extends B 意味着 A 是 B 的子类型#xff0c;比如下面是成立的 ‘abc’ extends string599 extends number 看下面例子#xff1a; type …最近刷了本ts小册对一些知识点做下笔记。 extends extends 是一个关键字用于对类型参数做一些约束。 A extends B 意味着 A 是 B 的子类型比如下面是成立的 ‘abc’ extends string599 extends number 看下面例子 type MyTypeT extends number {value: T; };const example: MyTypenumber {value: 42 };联合类型子集均为联合类型的子类型即 1、 1 | 2 是 1 | 2 | 3 | 4 的子类型 type MyTypeT extends number | string {value: T; };const example1: MyTypenumber {value: 42 };const example2: MyTypestring {value: hello };通过接口进行约束 interface MyInterface {length: number; }type MyTypeT extends MyInterface {data: T; };const example: MyTypestring {data: hello // Error: string does not satisfy the constraint MyInterface };const validExample: MyType{ length: number } {data: { length: 5 } }; 根据传入的请求码判断请求是否成功 type ResStatusResCode extends number ResCode extends 10000 | 10001 | 10002? success: failure;type Res1 ResStatus10000; // success type Res2 ResStatus20000; // failuretype Res3 ResStatus10000; // 类型“string”不满足约束“number”。如果我们想让这个类型别名可以无需显式传入泛型参数也能调用并且默认情况下是成功地这样就可以为这个泛型参数声明一个默认值 type ResStatusResCode extends number 10000 ResCode extends 10000 | 10001 | 10002? success: failure;type Res4 ResStatus; // successinfer 通过 infer 关键字来在 条件类型 中提取类型的 某一部分信息 让 TypeScript 根据上下文自动推断出我们需要的类型从而简化代码并让类型信息更具灵活性 看下面例子来理解 假设我们有一个条件类型 ExtractReturnType它接受一个类型参数 T。我们希望当 T 是一个函数类型时从这个函数类型中提取出它的返回值类型当 T 不是函数类型时返回never类型。 type ExtractReturnTypeT T extends (...args: any[]) infer R ? R : never;function greet(): string {return Hello!; }现在我们可以使用 ExtractReturnType 来推断 greet 函数的返回值类型而不需要显式地声明它 const result: ExtractReturnTypetypeof greet Hello World;ExtractReturnType 就会被推断为 string 类型 TypeScript 内置的声明文件es5.d.ts中使用infer举例 获取函数类型中this的参数类型 type ThisParameterTypeT T extends (this: infer U, ...args: never) any ? U : unknown; class Person {name: string;constructor(name: string) {this.name name;}getName(this: Person): string {return this.name;} }type testThisType ThisParameterTypetypeof Person.prototype.getName; // Person从函数类型中移除 this 参数 type OmitThisParameterT unknown extends ThisParameterTypeT ? T : T extends (...args: infer A) infer R ? (...args: A) R : T;function sayHello(this: { name: string }) {console.log(Hello, ${this.name}!); }type WithoutThisParam OmitThisParametertypeof sayHello; // () void获取函数类型中参数的类型列表 type ParametersT extends (...args: any) any T extends (...args: infer P) any ? P : never;function sum(a: number, b: number) {return a b; }type SumParams Parameterstypeof sum; // [a: number, b: number]Pick 和 Omit 都是对结构处理的工具类型Pick 和 Omit 功能相反 先看一下源码实现 type PickT, K extends keyof T {[P in K]: T[P]; };type OmitT, K extends keyof any PickT, Excludekeyof T, K;Pick它接受两个泛型参数第一个参数 T 即是我们会进行 结构处理 的 原类型一般是对象类型第二个参数 K 则是被约束为 T 类型的 键名联合类型 就是第一个参数传一个对象第二个参数传 对象的键 key最后获取到一个新对象类型 Omit 与Pick相反Pick 是保留这些传入的键 Omit 则是移除这些传入的键取剩下的 使用举例 interface Foo {name: string;age: number;job: string; }type PickedFoo PickFoo, name | age // 等同于 // type PickedFoo { // name: string; // age: number; // }interface Foo {name: string;age: number;job: string; }type OmitedFoo OmitFoo, name // 等同于 // type OmitedFoo { // age: number; // job: string; // }
http://www.tj-hxxt.cn/news/227978.html

相关文章:

  • 带屏蔽的网站做水晶头网站建设zvge
  • 公司网站建设的优势哈尔滨网站建设市场分析
  • 网站套餐国内站长做国外网站
  • 怎么把百度放到网站上wordpress 咚门下载
  • 网站的优点有哪些方面爱是做的电影网站
  • 珠宝网站模版济南的网站建设公司哪家好
  • 网站开发岗位分析如何制作自己的网页链接
  • 空白网站怎么做做暧网站免费
  • 智能网站建设公司排名网站建设销售开场白
  • 那做网站哪些网站的网站怎么做的
  • 做网站能用ai做吗给wordpress替换主题
  • 色彩学习网站wordpress 地方门户
  • vue 做的pc端网站济南市住建厅官方网站
  • 58同城网网站建设国字型网页布局图片
  • 门户网站建设 请示东莞常平房价2023最新楼盘消息
  • 学校网站网页制作跨境电商信息服务平台有哪些
  • 如何做网站条幅闪图wordpress国外主题网站
  • 题材挖掘机网站怎么做公众号运营技巧
  • mvc网站开发 案例视频家里笔记本做网站 怎么解析
  • 松岗专业做网站公司手机网站有什么区别是什么意思
  • 烟台建网站公司哪家好南通网站推广公司哪家好
  • 影视自助建站哪里建设网站最好用
  • 巫山做网站那家好云技术在网站建设中的应用
  • 互联网网站建设水平seo网站推广费用
  • 如何做网站平台关注软件技术培训机构
  • 深圳网站建设的基本知识如何用VS2017做网站
  • dede中英文企业网站广东企业微信网站建设
  • asp网站服务建设论文游戏开发公司定制游戏
  • 外贸用免费网站推广 有效果wordpress目录绑定外部链接
  • 做网站手机网站开发与编程