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  //Dir2='东'|'南'|'西'
type Dir3=Extract  //Dir3='北'

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

你可能感兴趣的:(javascript,前端,开发语言,typescript)