typescript里一些有趣的点】的更多相关文章

联合类型 在原生的JS里,null和undefined经常会导致BUG的产生, 在ts里,你又想用null,又担心出错的时候 你可以考虑用联合类型,当某值可能为 number或null,你可以声明它的类型为number | null let a : number | null = 2; 类型兼容 实现接口时,只要包含了接口要求的数据结构即可兼容这个接口 interface Person { firstName: string; lastName: string; } function greet…
1.布尔值__boolean 2.数字__number----除了支持十进制和十六进制字面量,Typescript还支持ECMAScript 2015中引入的二进制和八进制字面量. 3.字符串__string;使用双引号( ")或单引号(')表示字符串.使用模版字符串,它可以定义多行文本和内嵌表达式. 这种字符串是被反引号包围( `),并且以${ expr }形式嵌入表达式 4.数组__(1)在元素类型后面接上[] let list: number[] = [1, 2, 3];      (2)…
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 随着TypeScript和ES6里引入了类,现在在一些场景下我们会需要额外的特性来支持注解或修改类和类成员. Decorators提供了一种方式来添加注解和在类的声明和成员上使用元编程语法. Javascript里的Decorators目前处在建议征集的第一阶段,在TypeScript里做为实验性特性已经提供了支持. 注意  Decorators是实验性的特性,在未来的版本中可…
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 当使用外部JavaScript库或新的宿主API时,你需要一个声明文件(.d.ts)定义程序库的shape. 这个手册包含了写.d.ts文件的高级概念,并带有一些例子,告诉你怎么去写一个声明文件. 指导与说明 流程 最好从程序库的文档开始写.d.ts文件,而不是代码. 这样保证不会被具体实现所干扰,而且相比于JS代码更易读. 下面的例子会假设你正在参照文档写声明文件. 命名空间…
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 TypeScript里的类型兼容性基于结构子类型的. 结构类型是只一种只使用其成员来描述类型的方式. 它正好与名义类型形成对比. 看下面的例子: interface Named { name: string; } class Person { name: string; } var p: Named; // OK, because of structural typing p…
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 这节介绍TypeScript里的类型推论.即,类型是在哪里如何被推断的. 基础 TypeScript里,在有些没有明确指出类型的地方,类型推论会帮助提供类型.如下面的例子 var x = 3; 变量x的类型被推断为数字. 这种推断发生在初始化变量和成员,设置默认参数值和决定函数返回值时. 大多数情况下,类型推论是直截了当地. 后面的小节,我们会浏览类型推论时的细微差别. 最佳通…
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 除了传统的面向对象继承方式,还流行一种通过可重用组件创建类的方式,就是联合另一个简单类的代码. 你可能在Scala等语言里对mixins及其特性已经很熟悉了,但它在JavaScript中也是很流行的. 混入示例 下面的代码演示了如何在TypeScript里使用混入. 后面我们还会解释这段代码是怎么工作的. // Disposable Mixin class Disposable…
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 函数是JavaScript应用程序的基础. 它帮助你实现抽象层,模拟类,信息隐藏和模块. 在TypeScript里,虽然已经支持类,命名空间和模块,但函数仍然是主要的定义行为的地方. TypeScript为JavaScript函数添加了额外的功能,让我们可以更容易的使用. 函数 和JavaScript一样,TypeScript函数可以创建有名字的函数和匿名函数. 你可以随意选择…
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化. “内部模块”现在称做“命名空间”. “外部模块”现在则简称为“模块”,这是为了与ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {). 介绍 关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语…
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化. “内部模块”现在称做“命名空间”. “外部模块”现在则简称为“模块”,这是为了与ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {). 介绍 这篇文章描述了如何在TypeScript里使用命名空间(之前叫做“内部模…