TS之任意值

作者: 越前君 | 来源:发表于2020-04-05 21:32 被阅读0次

    上一篇介绍了 TypeScript 的原始数据类型,本文介绍一下任意值。

    任意值(Any)用来表示允许赋值为任意类型。

    一、什么是任意值类型?

    如果是一个普通类型,在赋值过程中改变类型是不被允许的:

    let myFavoriteNumber: string = 'seven';
    myFavoriteNumber = 7;
    
    // Type '7' is not assignable to type 'string'.
    

    但如果是 any 类型,则被允许赋值为任意类型。

    let myFavoriteNumber: any = 'seven';
    myFavoriteNumber = 7;
    

    二、任意值的属性和方法

    在任意值上访问任何属性、任何方法都是允许的:

    let anything: any = 'Hello';
    console.log(anyThing.myName);
    console.log(anyThing.myName.firstName);
    
    let anything2: any = 'Frankie';
    anything2.setName('Mandy');
    anything2.setName('Mandy').sayHello();
    anything2.myName.setFirstName('Ada');
    

    可以认为,声明一个变量为任意值之后,对它的任何操作,返回的内容都是任意值。

    三、未声明类型的变量

    变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型:

    let something;
    something = 'seven';
    something = 7;
    something.setName('Frankie');
    
    // 这里先说下后面要介绍的“类型推论”
    // let something 会被推断成 any 类型;
    // let something = 7 会被推断成 number 类型
    

    等价于:

    let something: any;
    something = 'seven';
    something = 7;
    
    something.setName('Frankie');
    

    下一篇介绍 TypeScript 之类型推论。

    The end.

    相关文章

      网友评论

        本文标题:TS之任意值

        本文链接:https://www.haomeiwen.com/subject/wlnsphtx.html