赞
踩
1.用ts解决js自有类型系统的问题
强类型和弱类型
静态类型和动态类型
js自有类型系统的问题
Flow静态类型检查方法 小工具
TS的语言规范和基本应用
2.类型系统 —强类型和弱类型 (类型安全)
2.1强类型 更强的类型约束 不会有隐式数据类型转换
实参类型和形参类型必须完全相同
2.2弱类型
不会限制实参的类型 语法上不存在问题 运行可能有问题
js是弱类型语言
python是强类型语言
3.静态类型和动态类型 (类型检查) strong
3.1静态 Groovy python || c# java
声明时数据类型不能变化 Dynamic————————————————————————————————————————————static
3.2动态 js || c c++
声明数据类型可变化 Weak
var foo =100
foo = ‘abc’
js是动态类型语言
python是动态类型语言
4.js是弱类型且动态类型语言
4.1特征 是 任性 灵活多变
4.2脚本语言 不需要编译
局限性也粗壮乃
5.弱类型的问题 隐患多,需要大量约定
1.异常需要运行时才报错 语法比较随意
调用对象中不存在的方法和成员不会报错 语法不报错
2.数字加法和 数字与字符串的加法导致函数功能可能发生改变 类型不明确
3.对象索引起可以使用任意类型的值 索引会自动转化为字符串
6.强类型的优势 可靠程度高
1.错误可以更早的暴露,语法会暴露出来
2.代码更智能,编码更准确,编辑器有智能提示 成员方法有提示
3.重构更牢靠 优化代码 修改已有方法的名称不方便
4.减少不必要的类型判断 使用typeof方法对入参进行必要的判断
7.Flow 类型检查器 小工具
在代码中添加类型注解 检查代码中的类型使用异常
function sum (a: number, b: number) {
return a + b
}
8.编译移除注解
注解是编码执行的 编码过后再编译之前移除就可以了
8.1 flow官方命令 flow-remove-types
8.2 babel插件
9.开发工具插件
flow langguage
10.flow类型推断
未编码时就推断出来
11.类型注解 增加可读性
返回值的类型注解
function bar (): void {
// return undefined
}
12.原始类型 flow可用
const str :string
number 数字 或者NaN Infinity 无限大
boolean
null null本身
void undefined
symbol Symbol()
13.数组类型
const arr1:Array =[1,2,3]
arr2 :number[] =[1,2,3]
元组 固定长度
const foo:[string,number]=[‘abc’,300]
14.对象类型
obj1 :{foo:string,bar :number}={foo:‘abc’,bar:200}
?可有可无
obj2 :{foo?:string,bar :number}={foo:‘abc’,bar:200}
15.函数类型
嵌套函数的注解
function foo (callback(string,number)=>void{
callback(‘abc’),100
})
16.特殊类型
16.1字面量类型 只能为特定值
const a:‘foo’ =‘foo’
const type :‘a’|‘b’|‘c’ = ‘a’
const b :string|number =‘abc’
16.2可以将t声明为类型
const t =string|number
const f:t =‘eed’
16.3Maybe类型 ?
const a:?number = undefined
17.Mixed & Any
value1:mixed 任意类型 强类型 使用之后要明确类型
typeof() 方法判断
value2 : any 任意类型 弱类型
18.类型小结
19.运行环境API
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。