首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
清沫
掘友等级
前端开发
|
蚂蚁金服
获得徽章 22
动态
文章
专栏
沸点
收藏集
关注
作品
赞
66
文章 60
沸点 6
赞
66
返回
|
搜索文章
最新
热门
类型和值 -- Javascript基础探究篇(1)
js中有七种内置类型:null,undefined,boolean,number,string,object, symbol(es6新增)。除了对象外其他统称为基本类型。 null有时会被当做对象,即typeof null为 object。这实际上是js的一个bug。我们对nu…
内置工具类型 -- Typescript类型编程篇(5)
可以看到,Omit类型就是对之前提到的Pick和Exclude的进一步封装。 可以看到T被约束必须为函数类型,如果传入一个非函数类型会报错。 T同样被约束必须为函数类型。 T被约束为必须为构造函数。 T同样被约束为必须为构造函数。 ThisParameterType用于获取函数…
条件类型 -- Typescript类型编程篇(4)
条件类型是ts中非常强大的功能,形如:T extends U ? X : Y,表示如果T是U的子类,则返回类型为X,否则为Y。和三元表达式相似。 条件类型还有一个特性:分布式条件类型。在结合联合类型使用时(只针对extends左边的联合类型),分布式条件类型会被自动分发成联合类…
映射类型 -- Typescript类型编程篇(3)
ts提供了映射类型,用于重用和修改已存在的类型。 假如我们有一个Person接口,我们希望把Person内部所有的成员都变成可选。在不借助映射类型时,我们可以会这样做: 这样既繁琐,也没有做到类型复用。而借助映射类型: 映射类型使用形如[K in KEYS]的形式遍历类型中所有…
重用现有类型 -- Typescript类型编程篇(2)
如果我们又想使用friends中的对象,我们可能又需要再单独抽离一个类型。这种方式就显得比较繁琐。 number并不是唯一可用于获取数组子项类型的方式。还可以使用诸如0,1或者其他数值字面量。 key in的方式和我们编程中获取对象中属性的方式十分相似。但ts只支持数组形式获取…
获取变量类型 -- Typescript类型编程篇(1)
typeof对于已经存在的变量,可以通过typeof获取其类型(注意和js中typeof做区分):获取函数类型:获取类的构造器和静态成员类型:
类型保护 -- Typescript基础篇(16)
如果我们有一个变量a,它的类型是联合类型string | number,我们希望调用slice方法。但是slice方法只存在于string类型中。所以我们需要缩小a的类型范围到string才能使用slice方法,否则会报错。这就是类型保护。 我们定义了两个接口,但是我们在做类型…
类型兼容性 -- Typescript基础篇(15)
我们为不同的变量定义了类型,所以不能像js一样,为一个变量自由赋值。类型兼容性就是描述一个类型能否被赋值为其他类型。兼容的本质是保证变量被赋值为其他类型的值,该变量在后续过程中仍能正常使用。 但是ts还有很多更为复杂的类型,本节主要讲讲各种类型的兼容性。 ts的类型兼容都是基于…
协变和逆变 -- Typescript拓展篇(1)
协变和逆变是编程理论中一个很重要的话题。用于表达父类子类在安全类型转换后的兼容性(或者说继承关系)。定义为:如果A,B代表两个类型;f()表示类型转换;A -> B表示A是B的子类。 我们有名为Animial的父类,Cat是Animal的子类。WhiteCat是Cat的子类, …
类型断言 -- Typescript基础篇(14)
虽然ts会自动推断类型,但是它所推断出的结果可能并不是我们期望的,此时我们可以使用类型断言覆盖它的推断。 注意:类型断言并不是类型转换,类型断言只是用于编译时进行类型分析。 这种方式极具破坏性,因为a并没有name属性,运行时会报错。一定要慎用双重断言! 为什么有些断言能成功,…
下一页
个人成就
文章被点赞
486
文章被阅读
118,219
掘力值
3,274
关注了
38
关注者
169
收藏集
1
关注标签
71
加入于
2017-11-30