当前位置: 首页 > news >正文

TS和JS的区别

1.TS和JS的区别 

ts 是js的超集。

  • 从执行环境上来看,浏览器、node.js 可以直接执行js,但不能执行ts;
  • 编译层面,Ts 有编译阶段,js 没有,只有转译阶段和lint阶段;
  • ts更难写一点,但类型更安全。
  • ts 代码写出来就是文档,IDE可以完美提示,js本身是没有区别的。

2. any/ never/unknow的区别

any 和  unknown是顶级类型,never 是底类型。前者可以被赋值为任何类型,后者不能

用法区别:unknown 比any 的类型检查更严格。

3. type 和interface 的区别?

假设type和interface都能用的情况下,你会用哪个?

对象相关用interface,与对象不相关用type。

  • 组合方式:interface 搭配extends来实现继承,type 使用& 来实现联合类型;
  • 扩展方式:interface 可以重复声明用来扩展,type一个类型只能声明一次;
  • 范围不同:type 适用于基本类型,interface 一般不行;
  • 命名方式:interface 会创建新的类型名,type 只是创建类型别名,没有创建新的。例如:

4. 工具类型的作用和实现

Partial 是部分类型,Required 是必填类型,Readonly 只读类型,Exclude 排除类型,Extract 提取类型,Omit 排除key类型,ReturnType 返回值类型。

type Dir='东'|'西'|'南'|'北'
type Dir2=Exclude<Dir,'北'>  //Dir2='东'|'南'|'西'
type Dir3=Extract<Dir,'北'>  //Dir3='北'

ps:Exclude 用于基本类型,Omit 用于对象类型。

相关文章:

  • python之字典的用法
  • 工程管理系统简介 工程管理系统源码 java工程管理系统 工程管理系统功能设计
  • Redis缓存(缓存预热,缓存穿透,缓存雪崩,缓存击穿)
  • Nginx缓存
  • springBoot--web--函数式web
  • 可管理链接仪表板Bender
  • 打破运维疆界:异构复杂网络环境的集中监控和管理
  • django基于Python的房价预测系统+爬虫+大屏可视化分析
  • LuatOS-SOC接口文档(air780E)--lcd - lcd驱动模块
  • 分布式内存计算Spark环境部署与分布式内存计算Flink环境部署
  • 最新Tuxera NTFS2023最新版Mac读写NTFS磁盘工具 更新详情介绍
  • Filter与Listener(过滤器与监听器)
  • 第6周 .NET
  • Jupyter Notebook 设置黑色背景主题
  • Flutter Image组件如何处理图片加载过程中的错误?
  • Python-Python高阶技巧:闭包、装饰器、设计模式、多线程、网络编程、正则表达式、递归
  • 搭建网站七牛云CDN加速配置
  • Stable diffusion的一些参数意义及常规设置
  • 逻辑漏洞详解
  • UE5--物体卡片与材质入门
  • 广东省副省长刘红兵任湖南省委常委、宣传部部长
  • 这就是上海!
  • 五一“拼假”催热超长假期,热门酒店民宿一房难求
  • 人社部:将制定提前领取个人养老金相关办法
  • 十四届全国人大常委会第十五次会议在京举行,审议民营经济促进法草案等
  • 上海超万套保租房供应高校毕业生,各项目免押、打折等优惠频出