TypeScript 素描 - 泛型、枚举
/*
泛型,好处多多的功能.不过这里最基本的就不打算说了,仅准备说一些
和C#不同的地方
*/ /*
泛型接口
GenericIdentityFn 定义了方法的描述等
identity方法则是它的实现
myIdentntiy使用了GenericIdentityFn的规则而实现是identity
*/
interface GenericIdentityFn {
<T>(arg: T): T;
} function identity<T>(arg: T): T {
return arg;
}
let myIdentity: GenericIdentityFn = identity; /*
泛型约束,虽然是泛型但是也不能胡来.做好约束也是非常重要的
而TypeScript的泛型约束也很有趣
*/ //接口
interface Lenthwise {
length: number;
}
//约束参数必须有length属性
function fun11<T extends Lenthwise>(arg: T) {
//可以放心的使用length了
arg.length;
}
/*
约束参数必须是类类型的,这里需要注意的,传进来的类需要是没有手
动指定构造函数的类,不过也可以这么定 new (x: string, y: number):
当然也有更高级的方法 比如指定类中的Prototype
*/
function fun12<T>(arg: { new (): T; }): T {
return new arg();
} fun12(Employee).fullName; /*
枚举,嗯 又是一个实用的东西
数字部分默认从0开始,当然如果指定了的话就是按照指定的值
*/
enum OrderType {
PayOk = 1,
NoPay = 2,
//因为上一个是2,所以这个是3
xxxx
}
TypeScript 素描 - 泛型、枚举的更多相关文章
- TypeScript 素描-基础类型
博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 TypeScript官网文档中的基础类型, T ...
- TypeScript Generics(泛型)
软件工程的一个主要部分就是构建组件,构建的组件不仅需要具有明确的定义和统一的接口,同时也需要组件可复用.支持现有的数据类型和将来添加的数据类型的组件为大型软件系统的开发过程提供很好的灵活性. 在C#和 ...
- TypeScript 之 泛型
https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/Generics.html 泛型:可以支持多种类型的数据 泛型函数的 ...
- TypeScript完全解读(26课时)_10.TypeScript完全解读-枚举
10.TypeScript完全解读-枚举 新建enum.ts并在jindex.ts中引用 一个简单的数字枚举 可以通过两种方式获取枚举的值 获取到编码,第一个默认为0,后面的一次递增 第二种形式 可以 ...
- TypeScript中的枚举类型
TypeScript拓展了Javascript原生的标准数据类型集,增加了枚举类型(enmu)和其他语言一 样 它提供我们一种数字类型的值,用来设置由于辨别的名字和方法 enum Students { ...
- TypeScript 素描 - 模块解析、声明合并
模块解析 模块解析有两种方式 相对方式 也就是以/或 ./或-/开头的,比如import jq from "/jq" 非相对方式 比如 import model from ...
- TypeScript入门-泛型
泛型 要创建一个可重用的组件,其中的数据类型就必须要兼容很多的类型,那么如何兼容呢,TypeScript提供了一个很好的方法:泛型 Hello World 要兼容多种数据格式,可能会有人想到any,即 ...
- 泛型&&枚举
1.枚举类型 JDk1.5中新增了枚举类型,可以使用该功能取代以往定义常量的方式,同时枚举类型还赋予程序在编译时进行检查的功能. 1.1 使用枚举类型设置常量 以往设置常量,通常将常量放在接口中(fi ...
- React + TypeScript 实现泛型组件
泛型类型 TypeScript 中,类型(interface, type)是可以声明成泛型的,这很常见. interface Props<T> { content: T; } 这表明 Pr ...
随机推荐
- ubuntu15.10 或者 16.04 或者 ElementryOS 下使用 Dotnet Core
这里我们不讲安装,缺少libicu52自行安装. 安装完成后使用dotnet restore或者build都会失败,一是报编译的dll不适合当前系统,二是编译到ubuntu16.04文件夹下会产生一些 ...
- Theano2.1.6-基础知识之在thenao中的求导
来自:http://deeplearning.net/software/theano/tutorial/gradients.html Derivatives in Theano 一.计算梯度 现在,让 ...
- FPGA中的INOUT接口和高阻态
除了输入输出端口,FPGA中还有另一种端口叫做inout端口.如果需要进行全双工通信,是需要两条信道的,也就是说需要使用两个FPGA管脚和外部器件连接.但是,有时候半双工通信就能满足我们的要求,理论上 ...
- 基于DDD的.NET开发框架 - ABP依赖注入
返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...
- checkbox js onclick ajax,列表页表格中修改数据
<input type='checkBox' value='".$row["p_id"]."' onclick='changeisNew(this);'& ...
- BGP路由协议详解(完整篇)
原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...
- java中的注解
注解为程序提供信息,但不是程序本身的组成部分.注解有以下用途: * 为编译器提供信息,相当于C语言中的预编译指令 * 部署时处理,软件工具可以根据注解来生成代码,XML文件等,例如编写servlet, ...
- Intel系列CPU的流水线技术的发展
Intel系列CPU的流水线技术的发展 CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件.对于PC而言,CPU的规格与 ...
- 61-umask 简明笔记
设定在创建文件时的权限掩码 umask [mask] 参数 mask可以是3位八进制数或者是如同在chmod中使用的符号值,mask指定不允许的权限(文件的实际权限是777减去umask值) 如果没有 ...
- datePiker弹出框被其他div遮挡
最近在做项目的时候,datePiker弹出框被下面的div给遮挡住了,以前也碰到过这样类似的问题,之前直接在style中添加"z-index:1000".但是现在使用angular ...