前端规范化工程 + Typescript

68 阅读2分钟

谈谈你对eslint的理解

  • 是什么:js的代码检查工具
  • 为啥学:统一规范
  • 怎么用:
    • cnpm init -y 生成package.json文件
    • cnpm i eslint@7.32.0 -g 全局安装eslint
    • eslint --init 初始化eslint文件
      • 【注】必须安装对应模块
    • 检查代码 eslint 路径及文件名
    • 修复代码 eslint 路径及文件名 --fix

🌛谈谈你对prettier的理解

  • 为啥学:
    1. 代码自动格式化,开发方便
    2. 减少eslint报错
  • 怎么用:
    1. 下载插件
    2. settings.json开启插件
    3. 配置

🐝谈谈你对ts的理解

  • 是什么:JavaScript的超集
  • 组成:js + type类型 + 面向对象
  • 为啥学(好处):
    1. 自动联想,自动填充
    2. 避免单词报错
    3. 可以充当手册
    4. 会报编译错误而非是运行后才发现

🐝🐝🐝 ts新增了哪些数据类型

  1. 联合类型(string | number)
  2. any(任意类型)
  3. unknown(未知类型)
  4. type(自定义类型)
  5. tuple(元组)
  6. enum(枚举)
  7. void(无类型,表示函数没有返回值)
  8. never(永不存在的值)
  9. 字面量类型

🐝🐝🐝 any、unknown类型区别

  1. any 可以完全不受类型约束,可以跳过 TS 的类型系统的检测
  2. unknown 比 any 要安全一些
  • 相同点:any 和 unknown 可以为任意类型的变量
  • 不同点:unknown需要先进行类型的判断,才执行相应的类型操作,所以 unknown 可以被看成是更安全的 any

🐝🐝🐝 any、void、never区别

  • any 任意类型
  • void 无类型 它表示一个【函数】没有返回值
  • never 永不存在的值

🐝🐝🐝interface、type区别

  1. type 可以表示原始数据类型,interface 不能
  2. type 可以声明联合类型和交叉类型,interface 不能,但是 interface 可以使用 extends 继承
  3. type 重名报错,interface继承

🐝🐝🐝 谈谈你对泛型的理解

  • 概念:泛型就是把类型当成参数
  • 语法:
    1. 传递
    2. 使用 -> 小括号前面写尖括号

🐝🐝🐝 ts的泛型应用场景?

  • 定义函数、接口、类时,不预先指定类型,使用的时候再指定。

  • ref、reactive等

🐝泛型工具类型

  1. Partial 可选 **
  2. Pick 挑类型**
  3. Rxclude 移类型 **
  4. Required 必须
  5. Record 拼对象类型
  6. ReturnType 获取返回类型

🌛 修饰符public/protected/private/readonly

  • public 公共的
  • private 私有的
    • 不能在类的外部访问,子类也不可以访问父类的
  • protected 受保护的
    • 不能在类的外部访问,但是子类可以访问父类
  • readonly 只读的