课程名称:Web前端架构师2022版
课程章节: 第8周 前端基础技术回顾和巡礼
主讲老师:张轩
课程内容:
今天学习的内容包括:
2-8 声明文件基础
2-9 定义文件进阶 - 写一个定义文件
2-10 配置文件
2-11 typescript 总结
课程收获:
使用 declare 关键字来定义第三方变量的类型
搜索第三方声明文件的网址 https://microsoft.github.io/TypeSearch/
为一个小模块书写第三方声明文件
type HTTPMethod = 'GET' | 'POST' | 'PATCH' | 'DELETE'
declare function myFetch<T = any>(url: string, method: HTTPMethod, data?: any) : Promise<T>
declare namespace myFetch {
const get: <T = any>(url: string) => Promise<T>;
const post: <T = any>(url: string, data: any) => Promise<T>;
}
export = myFetch
编译选项compilerOptions:
-
target:目标设置改变了哪些js特性被降级,哪些保持不变。例如,如果目标是ES5或者更低版本,箭头函数()=》this将被转换为等效的函数表达式。
-
module:指定生成那个模块系统代码,“None”,“CommonJS”,“AMD”,“System”。。。
只有“AMD”,System,能和–outFile一起使用。ES6和ES2015可使用在目标输出位ES5或更低的情况下。
- lib:编译过程中需要引入的库文件:如果lib没有制定默认注的库的列表。默认注入的库为:
若target ES5:DOM,ES5,ScriptHost
若targetES6:DOM,ES6,DOM.Iterable,ScriptHost.
-
allowJS:是否允许编译javascript文件。
-
skipLibCheck:是否忽略所有的声明文件(*.d.ts)类型检查。
-
strict:是否启用所有严格类型检查选项。
-
forceConsistentCasingInFileNames:是否禁止对同一个文件不一致的引用
-
moduleResolution:决定如何处理模块。或者是Node对于Node.js/io.js,或者是Classic(默认)
查看模块解析了解详情。
-
isolatedModules:是否将每个文件作为单独的模块(与“ts.transpileModule”)类似。
-
noEmit:是否不生成输出文件。
-
baseUrl:解析非相对模块名的基准目录,查看 模块解析文档了解详情
-
experimentalDecorators:是否启用实验性的ES装饰器。@等
-
outDir:重定向输出目录
-
include 制定需要编译处理的文件列表,支持glob模式匹配,文字的解析路径相对于当前项目的tsconfig。json文件位置 注意:如果制定了files选项值,则include的默认值为【】,否则默认包含当前项目注所有文件【"**/*"】
例如{
“include”:【“src//*”,"tests//*"】
}
将会包含src和test目录中的所有文件,而不会包含Script目录中的文件
include和exclude都支持使用通配符
*匹配零个或者多个字符(包含目录的分隔符)
- exclude:
用于指定当解析include选项时,需要忽略的文件列表