TS 学习笔记(1)类型基础

1 篇文章 0 订阅
1 篇文章 0 订阅

TS 学习笔记(1)类型基础

1. 类型注解,类型注解为一种轻量型的为函数或者变量添加约束的方式
{
    function greeterA(person: string) {
        return "Hello, " + person;
    }

    let user = "Hello";
    let s = greeterA(user);
    console.log(s) // Hello, Hello
}
2. 接口
{
    interface Person {
        userName: string,
        userSex: string,
    }

    function greeterB(person: Person) {
        console.log(`username is ${person.userName} userSex is ${person.userSex}`)
    }

    greeterB({userName: 'Zyi', userSex: 'Man'})
}
3.类
{
    class Student {
        fullName: string;

        constructor(public firstName, public middleInitial, public lastName) {
            this.fullName = firstName + " " + middleInitial + " " + lastName;
        }
    }

    interface Person {
        firstName: string;
        lastName: string;
    }

    function greeterC(person: Person) {
        return "Hello, " + person.firstName + " " + person.lastName;
    }

    let user = new Student("Jane", "M.", "User");

    console.log(greeterC(user))
}
变量定义
{
    // 布尔值
    let isDone: boolean = false;
    // 数字
    let isNumber: number = 0;
    // 字符串
    let isStr: string = 'aa';
    // 数组
    let isArray: number[] = [];
    let isList: Array<number> = [];
    // 元组
    let isTuple: [string, number] = ['a', 1] // ok
    // let isTuple:[string, number] = [1:'a']  会报错
    console.log(isTuple) //[ 'a', 1 ]
    console.log(isTuple[0].substr(1)); // OK
    // console.log(isTuple[1].substr(1)); // Error, 'number' does not have 'substr'
    // @ts-ignore
    isTuple[3] = 'a'  // 越界赋值必须符合联合类型
    console.log(isTuple)

    // 枚举
    enum Color {Red = 1, Green, Blue} // 枚举默认从0开始编号,当然也可以手动指定
    let c: Color = Color.Green;
    console.log(c) // 2
    console.log(Color[2]) // Green
    // Any  any 表示任何类型
    let notSure: any = 4;
    console.log(notSure) // 4
    notSure = 'a'
    console.log(notSure) // 'a'
    notSure = true
    console.log(notSure) // true
    let isLists: any[] = [1, 'a', true]
    console.log(isLists)  //[ 1, 'a', true ]
    // Void
    // 某种程度上来说 void 和 any 刚好相反,他表示没有任何类型,当一个函数没有返回值的时候他的返回值就是void
    {
        function warnUser(): void {
            console.log('hello world')
        }
    }
    // 声明一个void类型的变量并没有什么用,因为你只能赋予它 undefined 和 null
    let unusable: void = undefined;
    // Null 和 Undefined
    // Ts中 undefined 和 null 各自有各自的类型,分别是 undefined 和 null。和 void 类似,他们本身的类型用处不是很大。
    let n: undefined = undefined;
    let u: null = null;
    // Never
    // never表示那些永远不存在的类型。例如你方法中threw一个error或者是一个死循环等等
    {
        function error(message:string):never{
            throw new Error(message)
        }
    }
    // Object 表示非原始类型
    // @ts-ignore
    declare function create(o:object|null):void;
    // create({a:1})
    let isObject:Object = {'a':1}
    console.log(isObject) //{ a: 1 }
    // 类型断言
    let someStr= 'this is a str'
    let strLength:number = (<string>someStr).length;
    console.log(strLength) // 13
    let strLength1:number = (someStr as string).length;
    console.log(strLength1) // 13
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值