ES6补充知识
ES6箭头函数
|
|
- 参数只有一个时,可以省略
()
|
|
- 函数体只有一行返回句时,可以省略
{}和return
|
|
- 没有参数是,必须写
()
|
|
TypeScript
到底用类型断言、类型转换、类型声明还是泛型?
TS早期为了解决模块化创造namespace,module表示内部模块,后来ES6使用了module,TS为了兼容ES6使用namespace替代了自己的module表示命名空间。然后ES6广泛使用,建议淘汰namespace,用module做模块化; 类型别名与字符串字面量类型都是使用type进行定义;
TS中⇒用来表示函数定义,左边是输入类型,右边是输出类型
数据类型
-
:指定变量类型,在编译时对类型进行静态检查,有错误编译会报错 -
TypeScript编译的时候即使报错了,还是会生成编译结果 -
数据类型:boolean、number、string、null、undefined、Symbol、BigInt
-
new Boolean(1)返回Boolean对象,直接调用Boolean(1)返回boolean类型 -
JavaScript没有空值概念,TS中可以用void表示没有任何返回值 -
undefined和null是所有类型的子类型。也就是说undefined类型的变量,可以赋值给number类型的变量,但void不可以
-
-
声明变量未指定类型,默认为
any,未明确指定类型,会进行类型推论 -
联合类型只能访问类型共有属性或方法
-
一个接口只能定义一个任意属性
-
函数的可选参数之后不能出现必选参数
类型断言
-
值 as 类型或<类型>值,在tsx语法中必须使用前者 -
一方面不能滥用
as any,另一方面也不要完全否定它的作用,我们需要在类型的严格性和开发的便利性之间掌握平衡 -
类型断言不会影响到变量类型
常见的几种导出
在 ES6 模块系统中,使用
export default可以导出一个默认值,使用方可以用import foo from 'foo'而不是import { foo } from 'foo'来导入这个默认值
-
export导出变量 -
export namespace导出(包含子属性的)对象 -
export defaultES6默认导出 -
export =commonjs 导出模块 -
只有
function、class和interface可以直接默认导出,其他的变量需要先定义出来,再默认导出
泛型
在函数名后添加了<T>,其中T用来指代任意输入的类型,在后面的输入value: T和输出Array<T>中即可使用了。
|
|
多类型参数
|
|
泛型约束,eg.只允许这个函数传入那些包含length属性的变量
|
|
React
JSX语法
-
定义虚拟DOM不写
”” -
标签中混入js表达式用
{} -
标签中指定类名用
className -
标签中内联样式,{{ 小驼峰css }}
-
属性事件,on后面首字母大写(
onClick) -
虚拟
DOM必须只有一个跟标签 -
标签开头小写,jsx编译为
html标签 -
标签开头大写,
jsx识别为组件
函数式组件
-
函数名必须大写
-
以标签方式调用且开头大写
-
参数为
props
|
|
类式组件
-
必须继承
React内置类Component -
必须包含
render()
|
|