首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
清沫
掘友等级
前端开发
|
蚂蚁金服
获得徽章 22
动态
文章
专栏
沸点
收藏集
关注
作品
赞
66
文章 60
沸点 6
赞
66
返回
|
搜索文章
最新
热门
重用现有类型 -- 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属性,运行时会报错。一定要慎用双重断言! 为什么有些断言能成功,…
类型推断 -- Typescript基础篇(13)
我们并不总是需要为变量指定具体的类型,ts会根据一些规则推断变量类型。 因为const 指定的变量表示是常量,不可变。所以ts能在基础类型的基础上进一步推断出更具体的类型,这个和字面量类型相似。而let指定的变量是可变类型,所以只能推断出基础类型。 此时ts会将它推断为(str…
声明合并 -- Typescript基础篇(12)
在之前的函数章节中,通过声明多个函数类型实现函数的重载。函数重载就是函数声明合并。除了函数声明合并外。ts还会将接口和枚举声明进行合并。 接口的函数成员在重载时,在同一个声明中的顺序保持不变;但后声明的函数顺序会在先声明的函数之上,即后声明函数的有更高的优先级。(如上面合并结果…
泛型 -- Typescript基础篇(11)
我们在定义类型时,除了要给类型具体的规范和约束外,另一个重要考量是能否方便的复用。 可以看出这两个方法实现代码其实是一模一样的,唯一的区别是参数和返回值的类型不同。当然,为了消除这种重复,我们可以把参数和返回值类型改为any,但这样会失去类型保护;或者我们也可以用联合类型,结合…
类与接口 -- Typescript基础篇(10)
接口除了能够对对象属性就行规范,也能够对类的行为进行抽象,即类可以继承接口;反之接口也可以继承类。需要注意的是:在类继承接口时,接口只规定了类的实例公有部分;在接口继承类时,继承类的所有实例部分。 在上例中,ColorPoint继承Point接口。注意:类继承接口使用的是imp…
下一页
个人成就
文章被点赞
428
文章被阅读
105,407
掘力值
2,948
关注了
38
关注者
151
收藏集
1
关注标签
71
加入于
2017-11-30