管什么真理无穷, 进一寸有一寸的欢喜
一、类型系统
1. 强类型、弱类型(类型安全)
- 强类型: 在语言层面限制了,函数的实参类型和形参类型必须一致
- 弱类型: 在语言层面不会限制实参类型
- 强类型中,不允许任意的隐形类型转换
2. 静态类型、动态类型(类型检查)
- 静态类型: 一个变量,声明时他的类型就是明确的,声明过后,他的类型就不允许再修改
- 动态类型: 运行阶段才能明确变量类型,变量的类型随时可以改变
- 类型类型语言中的变量是没有类型的,变量中存放的值是有类型的
3. JavaScript 类型系统特征
- JavaScript 是一门弱类型 / 动态类型的语言
- 源于早期 JS 语言只是为了解决简单应用
- JS 是一种脚本语言,没有编译环节,静态类型会在编译时做类型检查
4. 弱类型的问题
- 只有在运行后,才能发现类型问题
- 类型不确定会导致执行结果不符合的隐患
- 传入的参数可能会被自动转换了类型
5. 强类型的优势
- 错误更早暴露: 编码阶段就可以提示错误
- 代码更智能,编码更准确
- 重构更可靠
- 减少不必要的类型判断
二、Flow 静态类型检查器
1. Flow概述
认识 JS 静态类型检查工具 Flow
function sum(a: number, b: number) {
return a + b
}
安装:
// 安装
npm add flow-bin
// 初始化 Flow
npm flow init
VScode 配置: Code => 首选项 => 设置 => 搜索:javascript validate => 关闭 JavaScript 校验
2. Flow 基础用法
// 启动 flow
npm flow
// 结束 flow
npm flow stop
3. 编译移除注解
// 安装
npm add flow-remove-types
// 运行 第一个参数是原代码所在的目录,'.' 当前目录,'-d'转换过后的输出目录,
npm flow-remove-types . -d dist
四、TypeScript 语法规范和使用
|