新手入门typeScript
2021-12-10 10:44
633 查看
强类型与弱类型(类型安全)
- 强类型不允许随意的隐士类型转换,而弱类型是允许的
- 变量类型允许随时改变的特点,不是强弱类型的差异
静态类型与动态类型(类型检查)
- 静态类型:一个变量声明时它的类型就是明确的,如果声明后,它的类型就不允许修改。
- 动态类型:运行阶段才能够明确变量类型,而且变量的类型随时可以改变。
JavaScript 自有类型系统的问题
- 任性:缺失了类型系统的可靠性
- javaScript没有编译环节,初期发展就设计成弱类型、动态类型语言
- 大规模应用下,这种优势也是劣势
弱类型的问题
- [li]君子约定有隐患,强制要求有保障
-
错误更早暴露
Flow静态类型检查方案 (工具)
- 参数-> 类型注解
- 使用-> yarn add flow-bin --dev
- flow编译移除注解-> yarn add flow-remove-types --dev yarn flow-remove-types src -d dist
-
yarn add @babel/core @babel/cli @babel/preset-flow --dev
-
建议手动添加类型注解
const a: string = 'aax'; const b: number = Infinity; const c: boolean = false; const d: null = null; const e: void = undefined; const f: symbol = Symbol();
const arr1: Array<number> = [1,2,3]; const arr2: number[] = [1,2,3];
// 元组 数组长度固定
const arr3: [string, number] = ['hello', 123]
const obj1: {foo: String, bar: number} = {foo: 'string', bar: 100} const obj2: {foo?: String, bar: number} = { bar: 100 } const obj3: { [string]: string } = {} obj3.key1 = 'value1' obj3.key2 = 100
-
[li]函数类型
function foo(callback: (string, number) => void) { callback(string, 100) }
const type: 'success' | 'warning' | 'danger' = 'success' type StringOrNumber = string | number const b: StringOrNumber = 'string' // 100 const gender: ?number = null // undefined const gender2: number | null | void = null
-
都是指定了任意类型,但是any是弱类型(主要是兼容老代码用的,实际项目中不建议使用),mixed是强类型。执行阶段会非法校验
类型手册:https://www.saltycrane.com/cheat-sheets/flow-type/latest/
运行环境API 对象
相关文章推荐
- 新手入门typescript,必需了解的知识,萌新一起成长
- 新手入门 解析配置文件的问题
- CyAPI使用新手入门(1)
- Android新手入门2016(13)--阻塞对话框PopupWindow
- Makefile新手入门:How to write Makefile
- 2014年BN Nook HD/HD+ CM11新手入门+刷机教程,编译自xda,仅供参考
- zbrush零基础新手必看入门教程第三部分:构成
- 新手入门:了解网络应用与网络协议
- 新手入门:从最灵活的知识学起
- Spark新手入门——2.Hadoop集群(伪分布模式)安装
- 新手入门php遇到的问题
- TensorFlow 教程 - 新手入门笔记
- 新手入门:XHTML DHTML SHTML的区别
- tensorflow学习笔记零:新手入门笔记
- MC新手入门(十九)------ 动画结束事件
- PHP常用代码大全(新手入门不可错过的好文章)
- 新手入门Python编程的8个实用建议
- ASP.NET MVC4 新手入门教程之二 ---2.添加控制器
- MC新手入门(三十五)------ 函数的调用
- MC新手入门(六)------动画设置