TS 学习四 类与构造函数

TS类

// 使用 class 类

/* 对象 中 主要包含两个部分
     属性
     方法
 */
class person {
  /* 
  通过 直接 定义的属性是实例属性,需要通过对象的实例去访问
  const p = new person()
  p.name

  使用 static 开头的属性 是静态属性(类属性) => 直接通过类去访问
  static readonly age: number = 18
  person.age

  readonly 开头的属性 表示一个只读的属性,不能重新赋值
  static readonly age: number = 18

  p.name = '猪八戒'  => 报错
  */
 

  // 定义实例属性
  name: string = "孙悟空"
  age:number = 18


  // 定义方法
  sayHello(){
    console.log('你好');
    
  }
}

const p = new person()
console.log(p)
p.sayHello()

TS构造函数和this

class Dog {
  // 属性
  name: string;
  age: number;

  // constructor 构造函数
  // 在 对象 被创建时 调用
  constructor(name: string, age: number) {
    // 在实例方法中,this就表示当前的实例
    // 在构造函数中,当前对象就是当前新建的那个对象
    // 可以通过this向新建的对象中添加属性
    this.name = name;
    this.age = age;
  }
  // 方法
  bark() {
    console.log("汪汪汪")
  }
}

const dog = new Dog("小黑", 2)
console.log(dog)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Ts 泛型在函数中的使用举例:比如我们有一个函数,它可以接收任意型的参数,但是我们又希望在函数内部对这些参数进行一些操作,那么我们就可以使用泛型来实现这个功能。例如: function identity<T>(arg: T): T { return arg; } 这个函数接收一个泛型参数 T,它可以是任意型。在函数内部,我们直接返回这个参数,这样就可以实现对任意型的参数进行操作了。 ### 回答2: TypeScript (TS) 是一种静态型语言,它引入了泛型概念,用于在函数中进行通用型的处理。下面是一个使用泛型的函数示例: ```typescript function reverseArray<T>(arr: T[]): T[] { return arr.reverse(); } const numbers = [1, 2, 3, 4, 5]; const reversedNumbers = reverseArray(numbers); console.log(reversedNumbers); // [5, 4, 3, 2, 1] const strings = ['Hello', 'World']; const reversedStrings = reverseArray(strings); console.log(reversedStrings); // ['World', 'Hello'] ``` 上述示例中,函数 `reverseArray` 使用了泛型 `<T>`,表示该函数可以接受通用型 `T` 的数组作为参数,并返回相同型的数组。在函数体内,首先调用了数组的 `reverse` 方法,然后将结果返回。 在代码中调用 `reverseArray` 函数时,可以传入不同型的数组参数。比如,`numbers` 是一个整数数组,`strings` 是一个字符串数组。通过使用泛型,我们可以方便地处理这些不同型的数组,并获得相应的结果。 在编译阶段,TypeScript 会根据实际传入的参数型进行型推导,确保传入的参数型和返回值型一致,从而提供编译时的型检查。这样可以避免传入错误型的参数导致运行时错误的问题。 总之,通过使用泛型,我们可以在函数中编写通用的代码,以适应不同型的数据,并且在编译阶段进行型检查,提高代码的可靠性和可维护性。 ### 回答3: 泛型在函数中的使用可以提供更加灵活和通用的编程方式,以下是一个关于泛型在函数中的使用举例: 举例我们有一个函数 `findMax`,用于找到数组中的最大值。如果我们只是针对具体的数值型进行编写,那么函数的重用性会受到限制。但是通过使用泛型,我们可以编写一个能够适用于不同型的数组的函数。 ```java public static <T extends Comparable<T>> T findMax(T[] array) { T max = array[0]; for (int i = 1; i < array.length; i++) { if (array[i].compareTo(max) > 0) { max = array[i]; } } return max; } ``` 在这个例子中,使用了 `<T extends Comparable<T>>` 这样的语法来声明泛型 `T`,并限制了 `T` 的型必须是实现了 `Comparable` 接口的型,这样我们就可以使用 `compareTo` 方法来比较不同型的对象。 通过使用泛型,我们可以在调用这个函数时传入不同型的数组,例如 `Integer[]`、`Double[]` 或者自定义的数组,而不需要针对每种型编写不同的函数。 ```java Integer[] integers = {1, 2, 3, 4, 5}; Double[] doubles = {1.5, 2.3, 0.9, 4.7}; String[] strings = {"apple", "banana", "orange"}; System.out.println(findMax(integers)); // 输出:5 System.out.println(findMax(doubles)); // 输出:4.7 System.out.println(findMax(strings)); // 输出:orange ``` 通过这个例子,我们可以看到泛型在函数中的使用,使得我们能够更加灵活地处理不同型的数据,提高了代码的可重用性和通用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值