这是TypeScript初学者必看系列的第一篇文章,这个系列主要会向大家系统的介绍TypeScript语言的基础知识点,以及一些项目中使用的技巧,希望大家可以喜欢,关注。好了废话不多,让我们一起进步,奥利给。。。
在学习一门新的编程语言之前我们应该在心理问自己几个问题,即What?,Why?,How?。
what?Ts是什么?
TypeScript是微软公司开发的一款JavaScript超集的编程语言,TypeScript可以支持任意浏览器,任意环境,任意系统,最重要的它还是开源的。
why?为什么出现Ts?
随着web的飞速发展,JavaScript作为一门脚本语言设计理念简单,缺少模块化以及类的支持这些先天性疾病成为阻碍JavaScript语言发展的绊脚石,Ts的出现就是为了解决Js这些先天性疾病,Ts语言在风格更加接近Java语言,支持,泛型,接口等等定义。
How?如何使用学习Ts
学习一门语言最好的方式就是打开它的官方文档,这样你不但可以学习到最新的Api也可以增加阅读文档的能力。
npm install -g typescript
npm install -g ts-node
众所周知我们学习编程都是从helloWord开始,那么Ts我们也不例外,先从第一个HelloWord程序开始。
Function outPut(p:String){
return "Hello"+p
}
let user = "Lihua"
console.log(outPut(user))
使用vscode编辑器打开新建终端输入
ts-node HelloWord.ts
zh
终端打印
Hello Lihua
你是不是有很多的疑问,接下来,让我们一步一步解密Ts
let user :String = ‘helloWord‘ 正确
let user :Number = ‘helloWord’ 错误
let list :Number [] = [1,2,3,4]
let arr : String [] = ["111","2222"]
泛型主要是用来提高我们代码的复用性,当然之前我认为泛型没啥用,但是当我使用了一次之后,“真香”,下面简单给大家一个案例,供大家参考
function getNumber(arg:number){
return arg
}
这是一个简单的Ts函数,我们限定了输入的实参必须是一个数字类型的
但是如果我们这是一个抽象出来的公共组件,或者工具函数,那么需求变更,现在实参只能是String,那么这个函数就废了。。。。
采用泛型函数
function getNumber<T>(arg:T){
return T
}
调用
let outPut = getNumber<String>("HelloWord");
let outPut = getNumber<Number>(1123);
这样我们只需要在调用函数的时候声明一下参数的类型,大大提高了函数的复用性,降低程序的耦合性
使用泛型定义数组
let :Array<T> = []
Array<String> = ["1","2"]
Array<Number> = [1,2,3,4]
枚举类型是对Js标准数据格式的一种补充,使用枚举可以提前为数据赋予一个友好的名字,我们可以根据枚举提供的姓名去映射到对应的值。
enum orderStatus {
start=1,
unpaid,
Shipping
}
当我们给第一个key赋值为1是,枚举类型会默认自增,其实计算机在运行时会这样找,
enum orderStatus {
start=1,
unpaid=2,
Shipping=3
}
但是当我们的枚举变量的值是字符串的时候,枚举就失去了这个特性
enum orderStatus {
start=“123”,
unpaid=“unpaid2”,
Shipping,
}
我们可以利用枚举的反向映射拿到对应的值
orderStatus [2] 对应的是 “unpaid2”
如果有人告诉你一个函数可以接受可以有多个不同类型的参数,你一脸懵逼,那么你要好好看看这里,首先重载的意义就是一个函数可以接受多个不同类型的参数,返回不同的结果,下面给大家写一个简单的案例介绍:
function reverse (X:number):number {}
约定函数 reverse 接受一个number类型的参数,返回值也是number类型
function reverse (X:String):String {}
约定函数 reverse 接受一个String 类型的参数,返回值也是String 类型
重载开始
function reverse (X:number | string,Y:number | string):number | string{
if(typeof X === number){
}else{
}
if(typeof Y === number){
}else{
}
//进行一些操作
}
console.log(reverse(3))
console.log(reverse("3"))
接口是对行为的抽象,对对象形状的简单描述,说白了就是你在定义一个对象时候的一些约束条件,规范化编码。
例如:
interface Person {
name:String,
age: Number
}
let Tom :Person = {
name:"Tom",
age: 18
}
这是TypeScript系列的第一篇文章,这个系列可能会有五片左右的文章和大家见面,主要事项Ts初学者提供一些参考,文章中有不正确的地方,当然有些地方可能自己理解的还不是很到位,比较浅显,欢迎大家在留言中批评指正,共同进步。