【TypeScript】学习笔记(二)

【TypeScript】学习笔记(二)

一、数组

存放多个元素的集合
最简单的方法是使用[类型+方括号]来表示数组:

let myArr:number[] = [1,2,3];

数组的项中不允许出现其他类型:

let myArr:number[] = [1,2,3,'tom'];//不能将类型“string”分配给类型“number”。

数组的一些方法也会根据数组定义时的类型进行限制:

let myArr:number[] = [1,2,3];
myArr.push('8');//类型“string”的参数不能赋给类型“number”的参数。

如果想数组中有不同类型的数据,就定义成any类型的数组

二、对象

object代表一个js对象
{ }用来指定对象中可以包含哪些属性,加问号代表是可选属性

语法:{属性名:属性值,属性名?:属性值}

let a :{name:string};

a = {name:'张三'};

如果想让对象除了存在某个特定的属性值之外还有其他不确定的属性值,可以这么写:

let obj : {name:string,[propName:string]:any};

obj = {name:"张三",age:150};

三、函数

函数声明

在JS中,有两种常见的定义函数方式——函数声明和函数表达式

//函数声明
function sum(x,y){
  return x+y
}

//函数表达式
let Mysum = function(x,y){
  return x+y
}

一个函数有输入和输出,要在ts中对其进行约束,需要把输入和输出都考虑到,其中函数声明的类型定义较为简单:

function sum(x:number,y:number):number{
    return x+y
}

四、元组

固定长度的数组

创建元组的方法:

let a:[string,string]

a = ['asd','asd']

五、枚举enum


enum Gender {
  Male = 0,
  Female = 1
};

let a : {name : string, gender:Gender}

a = {name:'张三',gender:Gender.Male};

六、编译配置

在文件下创建一个tsconfig.json文件
【TypeScript】学习笔记(二)_第1张图片
【TypeScript】学习笔记(二)_第2张图片
【TypeScript】学习笔记(二)_第3张图片

七、抽象类

继承是多态使用的前提。

但是,父类本身可能并不需要对某些方法具体的实现,所以父类中定义的方法,我们可以定义为抽象方法。

什么是抽象方法

  • 抽象方法,必须存在与抽象类中
  • 抽象类是使用abstract声明的类

下面对的代码中,Shape类就是一个抽象类,其中包含一个抽象方法。

八、接口

对类进行限制、定义规范。

interface Person{
  name:string;

  sayHello():void;
}

class Myclass implements Person{
  name:string;

  sayHello(){
    console.log('哈哈哈')
  }
}

九、属性的封装

  1. public 修饰的属性可以在任意位置访问(修改)
  2. private 私有属性,私有属性只能在类内部进行访问
  3. protected 受保护的属性,只能在当前类和当前类的子类中访问

class的属性可能会被篡改:

class Person{
  name:string;
  age:number;

  constructor(name:string,age:number){
    this.name = name ;
    this.age = age;
  }
}

const p = new Person('张三',18);

p.name = '李四';
p.age  = -38;

属性可以被容易修改,将会导致对象中的数据非常不安全

可以使用private修饰符,使得属性只能在类内部修改,但是如果在tsconfig.json文件中的noEmitOnError属性如果是false,那么依然会被编译。

你可能感兴趣的:(typescript,typescript,学习,javascript)