TypeScript学习记录

TypeScript学习记录

vscode设置自动编译

首先使用tsc --init 生成tsconfig.json配置文件 (可以根据需要修改设置)

终端->运行任务->typescript->tsc:监视

此时就可以实时编译(保存后编译)

数据类型

// String
let str:string='爱你哟,ts'
console.log(str)
// number
let age:number=18
console.log(age)
// boolean
let istrue:boolean=true
console.log(istrue)
// array
let numlist:number[]=[1,2,3]
console.log(numlist)
let numlist2:Array<string>=['1','2','3']
console.log(numlist2)
// touple
let toup:[string,number]=['aaa',12]  // 元素与类型一一对应
console.log(toup)
// Enum  自定义枚举类型,然后给变量赋枚举类型
enum Flag{
   
    success,erro,a=5,b    // 默认从0开始,当有一个元素被赋值,后面的会以赋值往后排
}
let enum1:Flag=Flag.success
let enum2:Flag=Flag.b
console.log(enum1)
console.log(enum2)
// any 类型,相当于任意类型,可以赋值任意值
// 相当于js中的对象
let a:any=0  
console.log(a)
a='哈哈哈'
console.log(a)
//let b:any=document.getElementById('box')
// 当变量赋值为dom元素对象时,只能编译(tsc),如果要直接运行会报错
// 当变量接收到的是dom元素时,类型是any
// console.log(b)
// undifined    变量定义了未赋值
// 在ts中,当某个变量定义了未赋值会报错
let num22:number|undefined   // 这样就可以
console.log(num22)

// null 空

let null1:null
null1=null    // null类型的变量只能被赋值null
// 当不确定一个变量是否为空,是否未被赋值,是否为指定类型可以给变量指定多种类型

let v1:string|number|undefined|null
// v1可以使字符串,可以是数字也可以不赋值也可以是null
console.log(v1)    // undifined
console.log(typeof(v1))   // undifined
v1='ha'
console.log(v1)          
console.log(typeof(v1))    // string
v1=1
console.log(v1)
console.log(typeof(v1))    // number
v1=1
v1=null
console.log(v1)
console.log(typeof(v1))      // null        

// void    当函数没有返回值时,定义返回值类型时使用
function run2(a:number):void{
         // ES5中可以不定义返回值类型
    console.log(a)
    // return a+1                    // 当有返回值时,会报错
}
// never 其他类型(包括undifined和null)
let abc:never

类和函数

// 函数
function run(){
         // ES5
    return '返回值'
}
/*
var a = function(){   // 匿名函数
    return 
}
*/

// ts函数  可以指定返回值类型
function func1():number{
   
    return 1      // 返回值的类型必须和指定类型一致
}

console.log(func1())

// 当函数有参数时,需要给参数指定类型
function func2(num1:number,str1:string):string{
   
    return `${
     num1} -----${
     str1}`    
}

console.log(func2(10,'aaaaa'))

// ts中如果给形参指定了类型,就必须传
// 方法的可选参数
// 如果实参可传可不传 类型为   ?:类型

function func3(num1:number,str?:string):string{
      // str可传可不传
    if(str){
   
        return `${
     str}----${
     num1}`
    }else{
   
        return `${
     num1}`
    }
}

console.log(func3(10))
console.log(func3(10,'hahahaha'))

// 默认参数    默认参数和可选参数的区别在于,默认参数需要指定默认值,当不传值时取默认参数
// 可选参数是可传可不传   不传时获取不到该参数值

function func4(a:number,b:number=10):number{
   
    return a+b
}

console.log(func4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值