typescript中的类型type与接口interface
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相关推荐
- TypeScript 中的类型兼容性
Typescript 乃 JavaScript 子集.只要设置一下编译器为非严格模式,那么所有 JavaScript 代码皆是合法的 TypeScript 代码.为了可以适应不同的场景 TypeScr ...
- TypeScript笔记(4)—— TypeScript中的类型注解
TypeScript(4):类型注解 [导读]JavaScript是若类型语言,而TypeScript里的类型注解是一种轻量级的为函数或变量添加约束的方式,为我们提供了静态类型分析能力,这样我们就可以 ...
- 浅谈C#中的抽象类(abstract)和接口(interface)
很多C#的初学者在编程时都容易把抽象类和接口搞混,甚至很多编程老鸟也没有弄明白为什么有了抽象类又搞个接口(这里也包括了本老鸟).所以这里整理了C#抽象类和接口的区别,详细的分析了抽象类与接口的概念与特 ...
- 【面试题】 面试官:说说你对 TypeScript 中枚举类型的理解?应用场景?
一.是什么 枚举是一个被命名的整型常数的集合,用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型 通俗来说,枚举就是一个对象的所有可能取值的集合 在日常生活中也很常见,例如表 ...
- 一文讲解Typescript中工具类型
想继续深入Ts其他知识点的同学可以关注下往期文章~
- TypeScript中的联合类型、类型别名、接口、类型断言
一.联合类型 在TypeScript中,联合类型(Union Types)是指用"|"符号将多个类型组合成一个的类型.这种类型可以包含不同的类型,例如字符串.数字或对象.这些不同类 ...
- 【进阶】TypeScript 中的 Type
一 .什么是 TypeScript TypeScript 是静态编程语言 , 是 JavaScript 的超集 简而言之:JavaScript 有的 TypeScript 都有.JavaScript ...
- 【TypeScript】从零开始玩转TypeScript - TypeScript中的接口
前言 小伙伴们大家好.前几篇文章我们已经学习了TypeScript中的基本语法,数据类型以及类的抽象类.今天将继续学习TypeScript中的另一个知识点 - 接口. 不知道小伙伴们有没有了解过后端语 ...
- Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)
1. 接口概念 接口是双方约定的一种合作协议.接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节.接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式.类型及结构. 接口内部存 ...
最新文章
- 理解JavaScript中的事件
- ASIHTTPRequest取消异步请求
- 2 数据源配置_Quick BI支持哪些数据源(配置操作篇)
- 如何将编写好的CS文件做成exe可执行文件
- mysql root密码过期了_Mac下重置mysql的root密码
- 前后台交互:跨域以及PHP与Ajax的配合使用
- 洛谷 1297 [国家集训队]单选错位——期望
- 谈谈 SAP 系统的权限管控和事务记录功能的实现
- NX拉伸实体实例 UF_MODL_create_extruded
- wordpress 迁移报错“Error establishing a database connection“
- 我的世界服务器怎么弄无限矿物,minecraft mod教程:在世界上生成矿石:GameRegistry的使用5...
- Python中程序的基本结构
- Netbeans安装教程
- Redis6.0以后版本安装报错问题
- 南安一中八十年校庆征文 陈建春老师
- 网页设计期末课程设计大作业 HTML、CSS 海绵宝宝动漫网页作业
- vue 生命周期 返回不触发_Vue生命周期activated之返回上一页不重新请求数据操作...
- play home android,playhome
- 编写个人博客网站的一次经历
- 华为云首席架构师顾炯炯:敢为人先,探索架构创新之路如何走