问题之前写过一篇文章,基于 husky + prettier + pretty-quick 进行 git commit 自动格式化代码。其实在项目实际应用过程中遇到过一次 husky hooks...
说明进行团队项目代码规范管控时,在脚手架层制定统一的格式化规范、lint 以及 git commit 自动脚本等是非常有效的手段,虽然不能 100% 解决问题(上述方式都是可以有办法跳过),但在...
系列因为内容太多,文章分开写的,目录如下:基于 lerna 的多包项目建设与npm & unpkg 的发布(一)主要介绍 lerna 的基本使用及相关命令实践基于 lerna 的多包项目建设与n...
系列因为内容太多,文章分开写的,目录如下:基于 lerna 的多包项目建设与npm & unpkg 的发布(一)主要介绍 lerna 的基本使用及相关命令实践基于 lerna 的多包项目建设与n...
说明EventEmitter 是在项目中经常会使用到的通信工具。如果在 React 项目中使用,虽然代码可能看起来没有那么纯粹(这里的纯粹指的是代码整洁度相关),但某个需求可能就会需要去使用这个...
一、场景说明webpack 构建的项目中,存在多个模块,这里举例存在两个模块,分别是 main.js 和 app.js。正常构建过程中,我们会构建出 main.js 和 app.js 两个 fi...
一、介绍之前写过一篇文章已经介绍过如何在 gulp 项目中使用 typescript,并且 browserify 和 babel 是如何与 typescript 一起工作的,文章地址:http:...
一、初始化工程首先创建一个 gulp 构建的简单工程,具体的目录及说明如下:|-- dist/|-- src/ | -- main.ts|-- tscofnig.json|-- gulpf...
一、说明三斜线指令是包含单个 XML 标签的单行注释,注释的内容会作为编译器指令使用。三斜线指令仅可放在包含它的文件的最顶端,一个三斜线指令的前面只能出现单行或多行注释,这包括了其他的三斜线指令...
一、介绍除了传统的面向对象继承方式,还流行一种通过可重用组件创建类的方式,就是联合另一个简单类的代码。二、Mixins 示例下面代码演示了如何在 TypeScript 中使用 Mixins://...
一、说明TypeScript 和 ES6 都引入了 class,在一些场景下可能需要额外的特性来支持标注或者是修改及其成员。装饰器(Decorators)为我们在类的声明及成员上通过元编程语法添...
介绍TypeScript 支持内嵌,类型检查以及将 JSX 直接编译为 JavaScript 。一、基本用法如果要用 JSX 必须做两件事情:给文件一个 .tsx 扩展名启用 jsx 选项Typ...
一、介绍TypeScript 中有一些独特的概念可以在类型层面上描述 JavaScript 对象的模型,这其中尤为独特的一个例子是"声明合并"的概念。理解这个概念,有利于操作现有的 JavaSc...
一、说明模块解析 是指编译器在查找导入模块内容时所遵循的流程,如果有一个导入语句 import { a } from "moduleA",为了去检查任何对 a 的使用,编译器...
关于术语的一点说明:TypeScript 1.5 术语名称已经发生了变化。“内部模块”现在称为“命名空间”,“外部模块” 现在则简称为 “模块”,这是为了与 ES6 的术语保持一致,也就是说 m...
命名的说明:在 TypeScript 1.5 里术语名称已经发生了变化。 “内部模块” 现在称作 “命名空间”,“外部模块”现在则简称为“模块”,这是为了和 ES6 的术语保持一致,也就是说 m...
参考文章:https://juejin.im/post/5c4f0590e51d45299a08d2bc一、需求写了一个库,并且没有进行 webpack 的编译,也就是没有处理 ES6 的代码,...
TypeScript 3.1 模块 Module(一)一、可选的模块加载和其它高级加载场景有的时候可能会需要在某种条件下再去加载某个模块,而在 TypeScript 中,可以做到这个需求。编译器...
关于名称的说明:TypeScript 1.5 中发生了变化,“内部模块” 现在成为 “命名空间”。“外部空间” 现在简称为 “模块”,与 ES6 保持一致,因此 module X{} 现在的推荐...
一、交叉类型 (Intersection Types)交叉类型是将多个类型合并为一个类型。这让我们 可以把现有的多种类型叠加到一起成为一种类型,它包含了所需要的所有类型的特性。比如:Person...