谈谈你对eslint的理解
- 是什么:js的代码检查工具
- 为啥学:统一规范
- 怎么用:
- cnpm init -y 生成package.json文件
- cnpm i eslint@7.32.0 -g 全局安装eslint
- eslint --init 初始化eslint文件
- 【注】必须安装对应模块
- 检查代码 eslint 路径及文件名
- 修复代码 eslint 路径及文件名 --fix
🌛谈谈你对prettier的理解
- 为啥学:
- 代码自动格式化,开发方便
- 减少eslint报错
- 怎么用:
- 下载插件
- settings.json开启插件
- 配置
🐝谈谈你对ts的理解
- 是什么:JavaScript的超集
- 组成:js + type类型 + 面向对象
- 为啥学(好处):
- 自动联想,自动填充
- 避免单词报错
- 可以充当手册
- 会报编译错误而非是运行后才发现
🐝🐝🐝 ts新增了哪些数据类型
- 联合类型(string | number)
- any(任意类型)
- unknown(未知类型)
- type(自定义类型)
- tuple(元组)
- enum(枚举)
- void(无类型,表示函数没有返回值)
- never(永不存在的值)
- 字面量类型
🐝🐝🐝 any、unknown类型区别
- any 可以完全不受类型约束,可以跳过 TS 的类型系统的检测
- unknown 比 any 要安全一些
- 相同点:any 和 unknown 可以为任意类型的变量
- 不同点:unknown需要先进行类型的判断,才执行相应的类型操作,所以 unknown 可以被看成是更安全的 any
🐝🐝🐝 any、void、never区别
- any 任意类型
- void 无类型 它表示一个【函数】没有返回值
- never 永不存在的值
🐝🐝🐝interface、type区别
- type 可以表示原始数据类型,interface 不能
- type 可以声明联合类型和交叉类型,interface 不能,但是 interface 可以使用 extends 继承
- type 重名报错,interface继承
🐝🐝🐝 谈谈你对泛型的理解
- 概念:泛型就是把类型当成参数
- 语法:
- 传递
- 收
- 使用 -> 小括号前面写尖括号
🐝🐝🐝 ts的泛型应用场景?
-
定义函数、接口、类时,不预先指定类型,使用的时候再指定。
-
ref、reactive等
🐝泛型工具类型
- Partial 可选 **
- Pick 挑类型**
- Rxclude 移类型 **
- Required 必须
- Record 拼对象类型
- ReturnType 获取返回类型
🌛 修饰符public/protected/private/readonly
- public 公共的
- private 私有的
- 不能在类的外部访问,子类也不可以访问父类的
- protected 受保护的
- 不能在类的外部访问,但是子类可以访问父类
- readonly 只读的