• 学习笔记之TypeScript语法一


    js原有数据类型在ts中的应用

    let isDone: boolean = false;
    let decLiteral: number = 6;
    let myName: string = 'Tom';
    let u: undefined = undefined;
    let n: null = null;

    undefined类型的变量只能被赋值为undefined,null只能被赋值为null

    如果是一个普通类型,在赋值过程中改变类型是不被允许的,因此如果需要改变类型就需要用到any

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

    在任意值上访问任何属性都是允许的,也允许调用任何方法

    let anyThing: any = 'hello';
    console.log(anyThing.myName);

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

    ts存在类型推论,就是说在定义变量的时候,虽然没有指定变量的类型,但是定义了变量的具体值,就根据这个值来推断这个变量的类型,也就不可以再改变这个变量的类型了。同时支持联合类型,就是说取值可以是多种类型的一种,比如

    let myFavoriteNumber: string | number;

    当ts不确定一个联合类型具体是哪个类型的时候,我们就只能访问此联合类型的所有类型里共有的属性或方法

    function getLength(something: string | number): number {
    return something.length;
    }
    //length 不是 string 和 number 的共有属性,所以会报错。

    - 接口

    interface Person {
    name: string;
    age: number;
    }
    let tom: Person = {
    name: 'Tom',
    age: 25
    };

    变量Tom的形状必须跟接口Person完全一致,属性也是不能多不能少,if你有不一致需求的时候

    interface Person {
    name: string;
    age?: number; //允许这个变量没有
    }
    let tom: Person = {
    name: 'Tom'
    };

    这时仍然不允许添加未定义的属性,如果需要任意属性,使用[propName: string]就可以定义任意属性来取string类型的值。一旦定义了任意属性,那么确定属性和可选属性的类型都必须是它的类型的子级

    interface Person {
    name: string;
    age?: number;
    [propName: string]: any;
    }
    let tom: Person = {
    name: 'Tom',
    age: 25, //这个就要超出错,因为这个可以没有,但是如果有了就属于任意属性里面的,就只能是string
    gender: 'male'  //任意属性名
    };
    // 只读属性 readonly id: number;  只可以获取不可以更改值,当然第一次赋值还是可以赋值的
  • 相关阅读:
    SpringMVC+Spring3+hibernate4 开发环境搭建以及一个开发实例教程
    SpringMVC 理论与实用技术(二)文件上传
    导入导出封装工具类(二) jXLS Excel报表生成工具类
    导入导出封装的工具类 (一) 利用POI封装
    eclipse 鲜为人知的调试技巧,你用过多少
    前端框架(二)DIV多选复选框框的封装和MySql数据库存取
    WPF/Silverlight Layout 系统概述——Arrange(转)
    WPF/Silverlight Layout 系统概述——Measure(转)
    Border绘制虚线框(转)
    ImageSource使用心得(转)
  • 原文地址:https://www.cnblogs.com/fdd-111/p/11840080.html
Copyright © 2020-2023  润新知