提示:
记得关注我哦!
提示:以下是本篇文章正文内容
一、TypeScript是什么?
TypeScript
是由Microsoft Corporation开发和维护的面向对象的编程语言。它是JavaScript的超集
,包含所有的元素。
TypeScript完全准寻OOPS
的概念,在TypeScript编译器的帮助下,我们可以将TypeScript的代码转换为js代码
二、为什么要使用TypeScript?
TypeScript的设计目的应该是解决JavaScript的痛点:弱类型和没有命名空间,导致很难的模块化,不适合开发大型的程序。另外它还提供了一些语法糖来帮助大家更方便的实践面向对象的编程。
优点/比较?
- TypeScript简化了JavaScript的代码,使其更易于阅读和调试
- TypeScript是开源的
- TypeScript为JavaScript IDE和实践提供了高效的开发工具,例如像静态检查
- 使用TypeScript,我们可以比普通的JavaScript做出巨大的改进
- TypeScript可以帮助我们提供了ES6的所有优点,以及更高的工作效率
- TypeScript可以帮助我们避免开发人员通过类型检查代码编写JavaScript时经常遇到的痛苦错误。
- 强大的类型系统,包括泛型
- TypeScript代码可以按照ES5和ES6的标准进行编译,以支持最新的浏览器
- 支持静态类型
10.TypeScript将节省开发人员的时间
三、什么是泛型?
泛型
的本质就是参数化类型,通俗的来说就是所操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法的创建中,分别成为泛型类
、泛型接口
、泛型方法
四、泛型的使用?
使用泛型可以创建泛型函数、泛型接口、泛型类
1、使用泛型变量
// 泛型变量的使用
function identity<T>(arg:T):T{
console.log(typeof arg);
return arg;
}
let output1=identity<string>('myString');
let output2=identity('myString');
let output3:number=identity<number>(100);
let output4:number=identity(200);
// 使用集合的泛型
function loggingIdentity<T>(arg:Array<T>):Array<T>{
console.log(arg.length);
return arg;
}
loggingIdentity([1,2,3]);
2、定义泛型函数
// 泛型函数
function identity<T>(arg:T):T{
return arg;
}
let myIdentity:{<T>(arg:T):T}=identity;
3、定义泛型接口
// 泛型接口
interface GenericIdentityFn<T> {
(arg: T): T;
}
function identity<T>(arg: T): T {
return arg;
}
let myIdentity: GenericIdentityFn<number> = identity;
4、定义泛型类
// 泛型类
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;};
console.info(myGenericNumber.add(2,5));
let stringNumberic=new GenericNumber<string>();
stringNumberic.zeroValue='abc';
stringNumberic.add=function(x,y){return `${x}--${y}`};
console.info(stringNumberic.add('张三三','诸亮亮'));
总结
通过上边的了解,我们在编写TS的时候定义函数、接口或者类的时候,不与先好具体的类型,而是在使用的时候在指定类型的一种特性的时候
,这种情况下我们就可以使用泛型!!!