typescript

JavaScript

TypeScript 模块解析

14 0

TypeScript模块解析这节假设你已经了解了模块的一些基本知识 请阅读 模块文档了解更多信息。模块解析就是指编译器所要依据的一个流程,用它来找出某个导入操作所引用的具体值。 假设有一个导入语句import { a } from "moduleA"; 为了去检查任何对 a的使用,编译器需要准确的知道它表示什么,并且会需要检查它的定义moduleA。这时候,编译器会想知道“moduleA的shape是怎样的?” 这听上去很简单, moduleA可能在你写的某个.ts/.tsx文件里或者

JavaScript

TypeScript 声明文件结构

11 0

TypeScript 声明文件结构概述一般来讲,你组织声明文件的方式取决于库是如何被使用的。 在JavaScript里提供了很多库的使用方法,这就需要你书写声明文件去匹配它们。 这篇指南涵盖了如何识别常见库的模式,与怎么样书写符合相应模式的声明文件。针对每种主要的库的组织模式,在模版一节都有对应的文件。 你可以利用它们帮助你快速上手。识别库的类型首先,我们先看一下TypeScript声明文件能够表示的库的类型。 这里会简单展示每种类型的库的使用方式,如何去书写,还有一些真实案例。识别库的类型是书写声明文件

JavaScript

TypeScript 声明合并

20 0

TypeScript声明合并介绍TypeScript中有些独特的概念可以在类型层面上描述JavaScript对象的模型。 这其中尤其独特的一个例子是“声明合并”的概念。 理解了这个概念,将有助于操作现有的JavaScript代码。 同时,也会有助于理解更多高级抽象的概念。对本文件来讲,“声明合并”是指编译器将针对同一个名字的两个独立声明合并为单一声明。 合并后的声明同时拥有原先两个声明的特性。 任何数量的声明都可被合并;不局限于两个声明。基础概念Typescript中的声明会创建以下三种实体之一:命名空间

JavaScript

TypeScript Mixins

13 0

TypeScript Mixins介绍除了传统的面向对象继承方式,还流行一种通过可重用组件创建类的方式,就是联合另一个简单类的代码。 你可能在Scala等语言里对mixins及其特性已经很熟悉了,但它在JavaScript中也是很流行的。混入示例下面的代码演示了如何在TypeScript里使用混入。 后面我们还会解释这段代码是怎么工作的。// Disposable Mixin class Disposable {isDisposed: boolean;dispose() {this.isDisposed

JavaScript

TypeScript 装饰器

17 0

TypeScript装饰器介绍随着TypeScript和ES6里引入了类,在一些场景下我们需要额外的特性来支持标注或修改类及其成员。 装饰器(Decorators)为我们在类的声明及成员上通过元编程语法添加标注提供了一种方式。 Javascript里的装饰器目前处在 建议征集的第一阶段,但在TypeScript里已做为一项实验性特性予以支持。注意? 装饰器是一项实验性特性,在未来的版本中可能会发生改变。若要启用实验性的装饰器特性,你必须在命令行或tsconfig.json里启用experimentalDe

JavaScript

TypeScript 高级类型

14 0

TypeScript高级类型交叉类型(Intersection Types)交叉类型是将多个类型合并为一个类型。 这让我们可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。 例如, Person & Serializable & Loggable同时是Person和Serializable和Loggable。 就是说这个类型的对象同时拥有了这三种类型的成员。我们大多是在混入(mixins)或其它不适合典型面向对象模型的地方看到交叉类型的使用。 (在JavaScrip

JavaScript

TypeScript 三斜线指令

7 0

TypeScript三斜线指令三斜线指令是包含单个XML标签的单行注释。 注释的内容会做为编译器指令使用。三斜线指令仅可放在包含它的文件的最顶端。 一个三斜线指令的前面只能出现单行或多行注释,这包括其它的三斜线指令。 如果它们出现在一个语句或声明之后,那么它们会被当做普通的单行注释,并且不具有特殊的涵义。/// <reference path="..." />/// <reference path="..." />指令是三斜线指令中最常见的一

JavaScript

TypeScript 命名空间和模块

13 0

TypeScript命名空间和模块关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 “内部模块”现在称做“命名空间”。 “外部模块”现在则简称为“模块”,这是为了与 ECMAScript 2015里的术语保持一致,(也就是说module X {相当于现在推荐的写法 namespace X {)。介绍这篇文章将概括介绍在TypeScript里使用模块与命名空间来组织代码的方法。 我们也会谈及命名空间和模块的高级使用场景,和在使用它们的过程中常见的陷阱。查看模块章节了