typescript中的type相当于是给类型起一个新的名字

基本用法:
比如我想声明一个类型为number的年龄age,刚开始学typescript,我们可能会这样写

let age:number = 10

接触到type也可以这样写

//这里的second其实代表的就是number
type second = numberlet b:second = 20

关键字:《1》pick:挑选指定的类型

interface Person {name: string;age: number;id: number;sex: 0 | 1;
}// 问女生年纪不太礼貌,所以我们不需要 age 这个属性
type Woman = Pick<Person, "name" | "id">;//返回值:
woman:{name: string;id: number;
}

《2》K extends keyof T:“或”匹配所有可能的类型
如下式代码

interface person {name:string,sex:string,age:number
}// K extends keyof person
// 这里的k可能是
{name:string,
}{name:string,sex:string,
}{name:string,sex:string,age:number
}
等等

《3》type可以使用in关键字生成映射类型,这里的key获取的是

type Keys = "name" | "sex"type DulKey = {[key in Keys]: string    // 类似for...in
}let stu: DulKey = {name: "wang",sex: "man"
}

类型type其实和接口interface有些像,但是两者区别在哪:
(1)extends 和 &
接口interface可以通过extends拓展
其实extends相当于一个加好+,将personage和personall键值对进行合并

interface personage {age:number
}interface personall extends personage {name:string
}let person:personall = {name:"xiaoming",age:14
}
console.log(person)

类型type可以通过&实现类型的交叉

type personage = {age:number
}type personname = {name:string
}let personall:personage&personname = {age:13,name:"xiaoming"
}console.log(personall)

(2)两者关联:

// interface 扩展 type
type Name = {name: string;
}
interface User extends Name {age: number;
}
let stu:User={name:'wang',age:1}// type 与 interface 交叉
interface Name {name: string;
}
type User = Name & {age: number;
}
let stu:User={name:'wang',age:1}

(3)接口interface可以声明多次,声明多次相当于扩展,如下式代码,这个person声明了3次,那么它所应该具有的属性是3个,如果少写了,ts就会报错;type不可以定义多次

interface person {name:string
}interface person {age:number
}interface person {sex:string
}let stu:person = {name:"xiaoming",age:12,sex:"男"
}

typescript中的类型type与接口interface相关推荐

  1. TypeScript 中的类型兼容性

    Typescript 乃 JavaScript 子集.只要设置一下编译器为非严格模式,那么所有 JavaScript 代码皆是合法的 TypeScript 代码.为了可以适应不同的场景 TypeScr ...

  2. TypeScript笔记(4)—— TypeScript中的类型注解

    TypeScript(4):类型注解 [导读]JavaScript是若类型语言,而TypeScript里的类型注解是一种轻量级的为函数或变量添加约束的方式,为我们提供了静态类型分析能力,这样我们就可以 ...

  3. 浅谈C#中的抽象类(abstract)和接口(interface)

    很多C#的初学者在编程时都容易把抽象类和接口搞混,甚至很多编程老鸟也没有弄明白为什么有了抽象类又搞个接口(这里也包括了本老鸟).所以这里整理了C#抽象类和接口的区别,详细的分析了抽象类与接口的概念与特 ...

  4. 【面试题】 面试官:说说你对 TypeScript 中枚举类型的理解?应用场景?

    一.是什么 枚举是一个被命名的整型常数的集合,用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型 通俗来说,枚举就是一个对象的所有可能取值的集合 在日常生活中也很常见,例如表 ...

  5. 一文讲解Typescript中工具类型

    ​想继续深入Ts其他知识点的同学可以关注下往期文章~

  6. TypeScript中的联合类型、类型别名、接口、类型断言

    一.联合类型 在TypeScript中,联合类型(Union Types)是指用"|"符号将多个类型组合成一个的类型.这种类型可以包含不同的类型,例如字符串.数字或对象.这些不同类 ...

  7. 【进阶】TypeScript 中的 Type

    一 .什么是 TypeScript TypeScript 是静态编程语言 , 是 JavaScript 的超集 简而言之:JavaScript 有的 TypeScript 都有.JavaScript ...

  8. 【TypeScript】从零开始玩转TypeScript - TypeScript中的接口

    前言 小伙伴们大家好.前几篇文章我们已经学习了TypeScript中的基本语法,数据类型以及类的抽象类.今天将继续学习TypeScript中的另一个知识点 - 接口. 不知道小伙伴们有没有了解过后端语 ...

  9. Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)

    1. 接口概念 接口是双方约定的一种合作协议.接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节.接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式.类型及结构. 接口内部存 ...

最新文章

  1. 理解JavaScript中的事件
  2. ASIHTTPRequest取消异步请求
  3. 2 数据源配置_Quick BI支持哪些数据源(配置操作篇)
  4. 如何将编写好的CS文件做成exe可执行文件
  5. mysql root密码过期了_Mac下重置mysql的root密码
  6. 前后台交互:跨域以及PHP与Ajax的配合使用
  7. 洛谷 1297 [国家集训队]单选错位——期望
  8. 谈谈 SAP 系统的权限管控和事务记录功能的实现
  9. NX拉伸实体实例 UF_MODL_create_extruded
  10. wordpress 迁移报错“Error establishing a database connection“
  11. 我的世界服务器怎么弄无限矿物,minecraft mod教程:在世界上生成矿石:GameRegistry的使用5...
  12. Python中程序的基本结构
  13. Netbeans安装教程
  14. Redis6.0以后版本安装报错问题
  15. 南安一中八十年校庆征文 陈建春老师
  16. 网页设计期末课程设计大作业 HTML、CSS 海绵宝宝动漫网页作业
  17. vue 生命周期 返回不触发_Vue生命周期activated之返回上一页不重新请求数据操作...
  18. play home android,playhome
  19. 编写个人博客网站的一次经历
  20. 华为云首席架构师顾炯炯:敢为人先,探索架构创新之路如何走

热门文章

  1. OpenGL: 圆柱面绘制贴图
  2. odb 使用指南(三)持久化对象的处理
  3. 解决数据库高并发的常见方案
  4. c语言hypot函数,hypot_数值 | Numerics_C_参考手册_非常教程
  5. [转]Unity 打包快手
  6. 微信新升级?这2个功能是你们期盼的吗?
  7. 我打算写一个《程序员的成长课》
  8. 1873. 计算特殊奖金
  9. html的fa图标代码,font awesome
  10. 影视后期制作中AEnbsp;抠像技术浅…