TypeScript之类型

1-1、类型
boolean string number array tuple(元组) enum(枚举) null undefined object void never any

typescript类型说明的相关官方文档:
https://www.typescriptlang.org/docs/handbook/basic-types.html

1、高级类型
union 组合类型

Nullable 可空类型

Literal 预定义类型

2、tuple(元组)
(1)声明
        let person:[number,string] = [1,'马龙']

(2)说明
        是一个固定长度,固定类型的数组

(3)注意事项
        ①使用元组.push 可以突破元组界限,无限度添加长度
        ②声明一个元组的时候一定要指明类型,不指明类型就是一个普通数组

3、联合(Union)和字面量(Literal)类型

let union1 :string | number | boolean   //只能用这几个类型

let union2 :0|1|2   //确定了范围

4、枚举(Enum)

//字符串比较
//常量枚举,提升性能
const enum Direction {

    Up = "UP",
    Down = "DOWN",
    Left = "LEFT",
    Right = "RIGHt",
}

const value = 'UP'

if(value === Direction.Up){
    console.log(value)
}

1-2、类型适配(类型断言)
let msg :any
msg = "abc
let d1 = (<string>msg).endsWith("c")
let d2 = (msg as string).endsWith('d')
须对自己代码类型有绝对的信心才使用

1-3、函数类型 as
let log = function(msg){
    consloe.log(msg);
}

let log2 = (msg:String) => consloe.log(msg)

//加上?代表这个参数可选;也可输入默认值,必须在最后
let log3 = (msg:String,code? :number) => {
     console.log(msg,code)
}

------

function getLength(input :string | number):number{
    const str = input as string
    
    if(str.length){
        return str.length
    } else {
        const number = input as number
        return number.toString().length
    }

}

//type guard

function getlength2(input :string | number):number{
    if(typeof input === "string"){
        return str.length
    }else{
        return input.toString().length
    }
}

注意事项:
       使用var声明变量,变量将在这个代码块中一直存在

1-4 Class
Class:定义了一切事物的抽象特点
Object:类的实例
OOP三大特性:封装、继承和多态

1-5 泛型

相当于一个占位符

1、创建一个拥有特定类型的容器
2、灵活约束参数类型
3、解决在函数使用时,函数类型推断不会流入函数体,使用表达式没法明确建立类型的绑定

function echo<T>(arg:T):T{
    return arg
}

const res = echo('string')

//约束泛型
interface IWithLength{
    length:number
}

function echoWithLength<T extends IWithLength>(arg:T):T{
    console.log(arg.length)
    return arg
}

const str = echoWithLength("123")
const arr = echoWithLength([1,2,3])
const obj = echoWithLength({length : 1})

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值