DOM Event
AnimationEvent : css动画事件 ChangeEvent:<input>, <select>和<textarea>元素的change事件 ClipboardEvent: 复制,粘贴,剪切事件 CompositionEvent:由于用户间接输入文本而发生的事件(例如,根据浏览器和PC的设置,如果你想在美国键盘上输入日文,可能会出现一个带有额外字符的弹出窗口) DragEvent:在设备上拖放和交互的事件 FocusEvent: 元素获得焦点的事件 FormEvent: 当表单元素得失焦点/value改变/表单提交的事件 InvalidEvent: 当输入的有效性限制失败时触发(例如<input type="number" max="10">,有人将插入数字20) KeyboardEvent: 键盘键入事件 MouseEvent: 鼠标移动事件 PointerEvent: 鼠标、笔/触控笔、触摸屏)的交互而发生的事件 TouchEvent: 用户与触摸设备交互而发生的事件 TransitionEvent: CSS Transition,浏览器支持度不高 UIEvent:鼠标、触摸和指针事件的基础事件。 WheelEvent: 在鼠标滚轮或类似的输入设备上滚动 SyntheticEvent:所有上述事件的基础事件。是否应该在不确定事件类型时使用 // 因为InputEvent在各个浏览器支持度不一样,所以可以使用KeyboardEvent代替
工具类
ConstructorParameters :类构造函数参数类型的元组 Exclude:将一个类型从另一个类型排除 Extract:选择可分配给另一类型的子类型 InstanceType:从一个新类构造函数中获得的实例类型 NonNullable:从类型中排除空和未定义 Parameters:函数的形参类型的元组 Partial:使对象中的所有属性都是可选的 Readonly:将对象中的所有属性设置为只读 ReadonlyArray:创建给定类型的不可变数组 Pick:对象类型的一种子类型,包含其键的子集 Record:从键类型到值类型的映射 Required:使对象中的所有属性都是必需的 ReturnType:函数的返回类型
- input change event
React.ChangeEvent<HTMLInputElement>
特殊情况
Object.keys
Object.keys(params) as Array<keyof typeof params>
setInterval/setTimeout
在浏览器中
let timer: number; // 注意 window. 不能省略,否则会识别为 nodejs 的 setInterval // 从而认为返回的是 Timeout timer = window.setInterval(() => { // sth }, 1000);
在 Nodejs 中
let timer: NodeJS.Timeout; timer = setInterval(() => { // sth }, 1000);