函数式触发click和点击触发click在宏任务与微任务方面的区别
在做关于事件循环的分享时,注意到了这两种方式的调用结果在宏任务和微任务的执行方面有差别,特此学习记录一下
在做关于事件循环的分享时,注意到了这两种方式的调用结果在宏任务和微任务的执行方面有差别,特此学习记录一下
本次在做低代码平台时,遇见了一个稍微有些复杂的业务场景,需求描述:
FormGenerator
去生成JSON数据),生成对应的所有组件的下拉列表,并在流程图的边(节点连接线)上添加条件判断。经过梳理后,其实逻辑看起来也不是特别复杂,不过当时确实是有点被难倒了,主要原因就是一些细节性的问题没有考虑到,然后流程图也需要去学习如何操作,时间上有些紧,同时也在思考如何写能够更便于维护。其次就是没有一个清晰的该处业务的流程思考,不过后来捋了捋也就差不多啦,所以说三思而后行啊。
三思而后行
:多思考几遍,自己又觉得自己行了哈哈
最近在准备事件循环的分享时,对于如何实现准确的计时有了点兴趣,因为在浏览器中,setTimeout/setInterval 并不是一个准确的计时,是存在延迟的。那么思考我们在双十一抢东西的场景,他们是如何做倒计时的呢?
TypeScript里的类型兼容性是基于结构类型系统的,只要二者的结构组成相同,就认为二者属于统一类型
1 | interface Pet { |
三斜线指令是包含单个XML标签的单行注释。 注释的内容会做为编译器指令使用
仅可放在包含它的文件的最顶端。一个三斜线指令前面只能出现单行或多行注释,包括其他的三斜线指令。否则被当为普通注释
/// <reference path="..." />
用于声明文件间的依赖
当使用–out或–outFile时,它也可以做为调整输出内容顺序的一种方法。 文件在输出文件内容中的位置与经过预处理后的输入顺序一致
编译器通过预处理解析所有三斜线指令,将额外的文件加到编译过程中。
过程从一些根文件开始,它们在命令行中指定的文件或是tsconfig.json
中的files
列表里的文件。这些根文件按指定的顺序预处理。在一个文件被加入列表前,它包含的所有三斜线引用都要被处理,还有它们包含的目标。 三斜线引用以它们在文件里出现的顺序,使用深度优先的方式解析
一个三斜线引用路径是相对于包含它的文件的,如果不是根文件
引用不存在的文件会报错。 一个文件用三斜线指令引用自己会报错。
三斜线引用会被忽略;它们不会增加新文件,也不会改变给定文件的顺序
/// <reference types="..." />
指令声明了对某个包的依赖。
对这些包的名字的解析与在import语句里对模块名的解析类似。 可以简单地把三斜线类型引用指令当做import声明的包
仅当在你需要写一个d.ts文件时才使用这个指令。
当且仅当 结果文件中使用了引用的包里的声明时才会在生成的声明文件里添加/// <reference types="..." />
语句
若要在.ts文件里声明一个对@types包的依赖,使用–types命令行选项或在tsconfig.json里指定
/// <reference no-default-lib="true"/>
把一个文件标记成 默认库。在lib.d.ts
文件和它不同的变体的顶端看到这个注释
这个指令告诉编译器在编译过程中 不要 包含这个默认库(比如,lib.d.ts
)。 这与在命令行上使用--noLib
相似
当传递了--skipDefaultLibChec
k时,编译器只会忽略检查带有/// <reference no-default-lib="true"/>
的文件
/// <amd-module />
指令允许给编译器传入一个可选的模块名
1 | ///<amd-module name='NamedModule'/> |
这会将NamedModule
传入到AMD define
函数里