TS总结

TS 总结

参考:
https://juejin.cn/post/6905913837715718152#heading-15

为什么要用TS

  • 类型检测:可以在编译阶段就发现大部分错误,这总比在运行时候出错好
  • 便于重构:增加了代码的可读性和可维护性
  • 静态类型
    • 静态类型检查可以做到early fail,编写的代码即使没有被执行到,但是发生类型不匹配的时候,语言在编译阶段(解释执行也一样),可以在运行前发现
    • 静态类型对阅读代码是友好的,针对大型应用,方法很多,调用关系复杂,不可能每个函数都有人编写细致的文档,所以静态类型就是非常重要的提示和约束。此外TS还实现了类、接口、美剧、泛型,方法重载等语法糖,方便前端开发

数据类型

  • 基础类型:boolean 、number、string、null、 undefined、 Symbol
  • 重点
    • undefined 和 null 类型的数据只能被赋值 undefined 和 null , undefined 和 null 类型是所有类型的子类型
    • void 空类型
    • any 类型
    • 类型推断
    • Enum 枚举
      •   	enum Color{
          	  red = 1,
          	  green = 2
          	}
          	let c:Color = Color.green  // 2
          	let colorName = Color[2]   // green
          	console.log(c,colorName) 
          	 
          	```
        
    • Array 数组
    • 元组类型
    • 函数类型

泛型

  • 是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性

  • 重点

    • T(Type):类型变量
    • K(Key):表示对象中的键类型;
    • V(Value):表示对象中的值类型;
    • E(Element):表示元素类型。
  • 使用原则

    • 当你的函数、接口或类将处理多种数据类型时;
    • 当函数、接口或类在多个地方使用该数据类型时。

对象与接口

  • 继承
interface ILink {
  description?: string;
  id?: number;
  url: string;
}
// 现在,IPost 类型的对象都将具有可选的属性 description、id、url和必填的属性 title 和body
interface IPost extends ILink {
  title: string;
  body: string;
}
  • 声明合并:如果定义了两个相同名字的函数、接口或类,那么它们会合并成一个类型
interface Alarm {
  price: number;
}
interface Alarm {
  weight: number;
}
// 相当于
interface Alarm {
    price: number;
    weight: number;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值