手记

【金秋打卡】第9天 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选项时,需要忽略的文件列表

0人推荐
随时随地看视频
慕课网APP