TypeScript笔记
#安装typescript [1]
npm install -g typescript #编译typescript
tsc test.ts //会生成test.js文件 #泛型,即使用“类型变量”,函数或者类申明时后面 < > 尖括号中的变量即是类型变量。 [1]
function identity<T>(arg: T): T {
return arg;
}
console.log( identity<number>(5) ); #类型推论,编译器会根据传入的参数自动地帮助我们确定T的类型:
let output = identity("myString"); // type of output will be 'string' #泛型类
class GenericNumber<T> {
zeroValue: T;
add: (x: T, y: T) => T;
} let myGenericNumber = new GenericNumber<number>();
myGenericNumber.zeroValue = 0;
myGenericNumber.add = function(x, y) { return x + y; }; #泛型约束,尖括号中使用了extends
interface Lengthwise {
length: number;
} function loggingIdentity<T extends Lengthwise>(arg: T): T {
console.log(arg.length); // Now we know it has a .length property, so no more error
return arg;
} loggingIdentity(3); // Error, number doesn't have a .length property
loggingIdentity({length: 10, value: 3});//需要传入符合约束类型的值,必须包含必须的属性
TypeScript笔记的更多相关文章
- TypeScript笔记[5]泛型+Dictionary 转
TypeScript笔记[5]泛型 在C++.C#.Java等主流编程语言中,一般对泛型编程提供了支持.合理利用泛型,可以提高开发效率.提升代码质量. 例如在C++编程语言中,常常利用下面的结构表 ...
- TypeScript笔记 5--变量声明(解构和展开)
解构是什么 解构(destructuring assignment)是一种表达式,将数组或者对象中的数据赋给另一变量. 在开发过程中,我们经常遇到这样问题,需要将对象某个属性的值赋给其它两个变量.代码 ...
- TypeScript笔记 3--基础类型
强类型是TypeScript值得称赞的特性,对于很多后端开发者来说是绝对的福利,加上静态检查使得我们可以在开发态就可以发现很多问题. TypeScript中的类型和JavaScript差不多,下面我们 ...
- TypeScript笔记 1--环境搭建
TypeScript是什么 Typescript是JavaScript的超集,支持ES6特性并且提供了类型系统,可以编译成Javascript.是微软开发且已经在github上开源. ES6(ES20 ...
- 2. TypeScript笔记
1. 安装node.js之后 需要测试npm命令 2.命令正常安装TypeScript 3.安装Egret egret 命令
- 学习TypeScript 笔记
TypeScript 什么是TypeScript TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准. TypeScript 由微软开发的自由和开源的编程 ...
- TypeScript笔记 6--接口
接口定义 接口和Java语言一样,都是通过关键字interface定义的,如下例子: interface People { name: string; age: number; hobby?: str ...
- TypeScript笔记 4--变量声明
在上一篇:基础变量中我们在声明变量时使用了关键字let,这和JS中的var有点类似. 语法 基本语法:let 变量名:类型.当然类型不是必须的. let x:number; let y:string ...
- TypeScript学习笔记(五):接口
使用接口 在前面的笔记中我们知道可以使用Object Type来指定参数的属性,如下: function printLabel(labelledObj: {label: string}) { cons ...
随机推荐
- service_names配置不正确,导致dg创建失败
service_names配置不正确,导致dg创建失败 伙伴发来消息,创建dg后,主备一直无法进行日志同步. 以下是查看过程 备库的alert日志: 2018-11-13T17:47:36.23129 ...
- Python之数学题目练习
首先,下面的题目来自我的大学同学的分享,他用数学证明,我用编程计算机发现了答案. 他的数学推理: 然后下面是我的Python代码: #coding=utf-8 # 井的高度 well_hegith = ...
- Chrome 控制台报错Unchecked runtime.lastError: The message port closed before a response was received
Chrome浏览器控制台报错提示 Unchecked runtime.lastError: The message port closed before a response was received ...
- 使用phpstorm进行PHP断点调试
PHP开发中都说一个会偷懒的程序员才是合格的程序员,在PHP开发中调试是必须要有的,可能要重复很多次的去调试,一次又一次,今天我们就来教教大家如何偷懒的,那么就来讲讲使用phpstorm进行偷懒吧! ...
- Xilinx的ISE14.7和PlanAhead与win10系统的兼容性问题解决方案
Xilinx的ISE14.7和PlanAhead与win10系统的兼容性问题解决方案 2018年07月03日 18:27:57 feq123 阅读数:4495 今天在新电脑的win10系统上安装I ...
- MUI框架的缩写输入
html 上面--代表最小触发字符 下面--代表非必要完整触发字符 组件 触发字符 mDoctype(mui-dom结构) mdo ctype mBody(主体) mbo dy m ...
- 为Sublime Text 设置全局启动快捷键
为Sublime Text创建快捷方式.找到Sublime Text安装目录中的“sublime_text.exe”文件,然后右击创建快捷方式,如下图: 为Sublime Tex设置全局快捷键.将上 ...
- MYSQL数据库高可用方案探究
MySQL作为最关键的应用数据存储中心,如何保证MySQL服务的可靠性和持续性,是我们不得不细致考虑的一个问题.当master宕机的时候,我们如何保证数据尽可能的不丢失,如何保证快速的获知master ...
- 科普知识普及 - 桥接VS中继
首先要说明一个很多人理解的误区,中继比桥接好用,真的是这么回事么? 答案是否定的. 我们在说桥接和中继的时候我们要先了解,桥接和中继的工作原理.还有一个问题,估计很多人都想不明白:为什么中继搜到的信号 ...
- Guava Cache用法介绍<转>
Guava Cache是在内存中缓存数据,相比较于数据库或redis存储,访问内存中的数据会更加高效.Guava官网介绍,下面的这几种情况可以考虑使用Guava Cache: 愿意消耗一些内存空间来提 ...