TypeScript入门基础

基础概念

简介:微软开发、js超集、遵循ES6

优势:

  1. 增加了代码的可读性和可维护性:类型系统、编辑器和IDE支持
  2. 非常包容:类型推论、编译报错、兼容第三方库
  3. 活跃的社区:Google、ES6

缺点:

  1. 学习成本:需理解接口、泛型、类、枚举类型等
  2. 短期增加开发成本,但可以减少维护成本
  3. 构建流程需要一些 工作量
  4. 可能和一些库的结合不是很完美
  5. typescript编译的时候即使报错了,还会生成编译结果(可通过tsconfig.json配置使其编译报错不生成编译结果)

 

入门基础

数据类型

字符串类型:  var myname: string = "xiaohong"

数字类型: var age: number = 12;

布尔类型: var man: boolean = true;

空值: let unusable: void = undefined; 只能赋值为undefined和null

Null:let n:null = null;

Undefined:let u: undefined = undefined; //undefined和null是所有类型的子类型,都可以赋值给其他类型的变量

任意类型: var alias: any = 'xxx' //变量声明未指定类型,可以被识别为任意值类型

(类型推论:声明时没有指定类型,虽然在编译的时候报错,但会根据赋的值推断出类型。如果变量声明时没有赋值则推断成any类型。)

联合类型:let u:string | number //既可以赋值string也可以赋值number

(访问联合类型的属性或方法:不确定到底是哪个类型时,只能访问此联合类型的所有类型里共有的属性或方法。)

 

接口

简介:在面向对象语言中,接口是一个很重要的概念,是对行为的抽象,而具体如何行动需要由类(class)去实现(implement)

TypeScript中的接口是一个非常灵活的概念,除了可用于对类的一部分行为进行抽象以外,也常用于对[对象的形状(shape)]进行描述

interface IPerson {  //建议在接口名称前加I前缀做标识
    name: string;
    age: number;
}
let tom: Person = {  //定义的变量比接口少了或者多了一些属性是不允许的
    name: 'Tom',
    age: 25
};
//赋值的时候,变量的形状必须和接口的形状保持一致


//可选属性,设置的可选属性添不添加都可以,但是不可以添加为定义的属性
interface: IPerson {
    name: string;
    age?: number;  //可选属性
}
let tom: Person = {
    name: 'Tom'    //可以给一个属性
}

//任意属性:一旦定义了任意属性,那么确定属性和可选属性的类型都必须是它的类型的子集
interface IPerson {
    name: string;
    age?: number;
    [propName: string]: any;
}

//只读属性:对象中的一些字段只能在创建的时候被赋值,那么可以用readonly定义只读属性
//只读的约束存在于第一次给对象赋值的时候,而不是第一次给只读属性赋值的时候

 

数组的类型

表示法:类型 + 方括号,数组不允许出现其他的类型

数组泛型:let fibonacci: Array<number&g

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值