我的TypeScript笔记

       去年换工作去参加其他公司面试,很多公司都问你会ts吗?了解ts吗?,第一家问的我一脸蒙蔽样,很老实的我回答说我不知道没有了解过,面试官一副鄙视样很受打击,回来之后我就网上查询搜索ts,搜索出来的原来ts是TypeScript ,是javascript的超集,所有使用JavaScript实现的东西TypeScript都能实现 ,  TypeScript现在用的已经很广泛了,无论你使用ng、React还是Vue都可以使用TypeScript来实现的你JavaScript代码,原来我真的落后咯,于是我就开始好好的学习TypeScript,只要你有javascript基础就可以很愉快的学习这门新技术。

      TypeScript不同于javascript的是它是强类型的,必须要定义类型(其实不用定义也可以,他会被当作javascript编译,但是这样就会显得我们不专业),以下就是我学习typescript总结的一些笔记,希望对应看到我博客的码农有所帮助(文采不好,希望理解)。

  1. 安装、
  1. 先按照node
  2. npm install  typescript  -g 全局安装
  3. tsc --version
  1. 搭建typescript项目
    1. 新建一个文件夹然后,npm init -y来初始化项目,生成package.json文件。
    2. 创建tsconfig.json文件,在终端中输入tsc --init:它生成一个TypeScript项目的配置文件,可以通过读取它来设置TypeScript编译器的编译参数
    3. 装@types/node,使用npm install @types/node --dev-save进行安装。这个主要是解决模块的声明文件问题。
    4. 编写HelloWorld.ts文件,然后进行保存,代码如下。

             var a:string = "HelloWorld"

              console.log(a)

    1. 在Vscode的任务菜单下,打开运行生成任务,(新版本在终端->运行生成任务,快捷键为:ctrl+shift+b)然后选择tsc:构建-tsconfig.json,这时候就会生成一个helloWorld.js文件
    2. 在终端中输入node helloWorld.js就可以看到结果了。
  1. TypeScript 数据类型

Undefined :定义了一个变量,但没有给他赋予任何值的时候,他就是Undefined类型

Number:数值类型;

string : 字符串类型;

Boolean: 布尔类型;

enum:枚举类型;

enum fruit{

    nan = '苹果',

    nv = '香蕉',

    yao= '哈密瓜'

}

 

any : 任意类型,一个牛X的类型;

void:空类型;如果是函数里面使用就不返回任何东西

Array : 数组类型;

Tuple : 元祖类型;

Null :空类型。

  1. TypeScript函数

function findShuaiguo(age:number):string{

    return '找到了'+age+'岁的小帅哥'

}

var age:number = 18

var result:string = findShuaiguo(age)

console.log(result)

可选参数函数  ?

function findShuaiguo2(age:number  , stature?:string):string{

 

    let yy:string = ''

    yy = '找到了'+age+'岁'

    if(stature !=undefined){

        yy = yy + stature

    }

    return yy+'的小帅哥'

}

var result:string  =  findShuaiguo2(22,'身材高挑')

console.log(result)

有默认参数

function findShuaiguo2(age:number=18,stature:string='身材高挑'):string{

 

    let yy:string = ''

    yy = '找到了'+age+'岁'

    if(stature !=undefined){

        yy = yy + stature

    }

    return yy+'的小帅哥'

}

var result:string  =  findShuaiguo2()

console.log(result)

有剩余参数的函数传递给函数的参数个数不确定

function findShuaiguo3(...xuqiu:string[]):string{

    let  yy:string = '找到了'

    for (let i =0;i<xuqiu.length;i++){

        yy = yy + xuqiu[i]

        if(i<xuqiu.length){

            yy=yy+'、'

        }

    }

    yy=yy+'的小帅哥'

    return yy

}

var result:string  =  findShuaiguo3('22岁','大长腿','瘦高瘦高','有型')

console.log(result)

  1. TypeScript有3种函数的定义方式

(1)、函数表达式

function add(n1:number,n2:number):number{

    return n1+n2

}

(2)、函数声明式

var add = function(n1:number,n2:number):number{

    return n1+n2

}

console.log(add(1,4))

  1. 、箭头函数

var add = (n1:number,n2:number):number=>{

    return n1+n2

}

console.log(add(1,4))

  1. 引用类型数组
  1. 、number类型的数组

Let  arr1:number[]

  1. 、字符串类型

Let  arr1:Array<string>

  字面量赋值法

Let  arr1:number[] = []

Let  arr2:number[] = [1,2,3,4,5]

Let  arr3:Array<string> = [“aaa”,”bbs”,”cccc”]

Let  arr4:Array<boolean> = [true,false,true]

构造函数赋值法

Let  arr1:number[] = new Array()

Let  arr2:number[] = new Array(1,2,3,4,5)

Let  arr3:Array<string> =new Array(“aaa”,”bbs”,”cccc”)

Let  arr4:Array<boolean> = new Array(true,false,true)

Let  arrtest:number[] = [1,2,true]  //错误的不允许这样写

元组

Let x:[string,number] 键值对应类型的

字符串的两种类型

基本类型字符串:由单引号或者双引号括起来的一串字符串。

引用类型字符串:用new 实例化的 String类型

let lydia:string = '哈哈哈'  //哈哈哈

let lydiaa:String = new String("lydia.com")   // [String: lydia.com]

  1. typescript引用类型日期对象

a、不传任何参数  let  datetime:Date = new Date()  //打印当前日期时间

b、传递一个整数  let datetime2:Date = new Date(2000)   

//时间是从1970-01-01 00: 00:00 开始算的    这里的2000就代表时间为   1970-01-01 00:00:02 (2秒)

c、传递一个字符串

       Let datetime3:Date = new Date(‘2019-04-28 10:30:45’)   

       Let datetime4:Date = new Date(‘2019/04/28 10:30:45’)  

   Let datetime4:date = new Date(‘2019-04-28T10:30:45’) //T代表时间

   上面3个打印出来的结果是一样的  

       let d:Date = new Date(year,month,day,hours,minutes,seconds,ms); //很少用找个

  1. typescript 正则使用

创建正则表达式也提供了两种方法,一种是才采用new 关键字,另一种是采用字面量 的方式。RegExp接收2个参数,第一个代表条件  第二个代表时修饰符

修饰符:g是全局修饰符,i是忽略大小写,m是多行模式。 

  1. let reg = new RegExp(‘abc’  ,  ’gi’)  //表示字符串规则里面要包好abc字符
  2. Let reg2 = /abc/gi

RegExp中的常用方法

RegExp对象包含两个方法:test( )和exec( )用于测试字符串匹配。

test(string) :在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在 则返回 true,不存在则返回 false。

exec(string) : 用于在字符串中查找指定正则表达式,如果 exec() 方法执行成功, 则返回包含该查找字符串的相关信息数组。如果执行失败,则返回 null。

 

例如:reg.test(‘sdkfjskdfjsabc’)   返回true

          reg.exec(‘sdkfjskdfjsabc’’)   [ abc, index: 11, input: 'sdkfjskdfjsabc’' ]

以上是我的部分typescript笔记,后面我还会写一个关于class和接口的笔记。敬请期待

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值