首页 > 其他分享 >TypeScript中的类

TypeScript中的类

时间:2023-06-26 10:46:44浏览次数:54  
标签:TypeScript name age 多态 class string

1. 类的基本语法

在 TypeScript 中,使用 class 关键字来定义类。以下是一个简单的类的示例:

class Person {
  private name: string;
  age: number;

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

  greet() {
    console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
  }
}

在上面的例子中,Person 类具有一个私有成员 name 和一个公共成员 age,并且定义了一个构造函数 constructor 和一个 greet 方法。

2. 成员修饰符

TypeScript 提供了几种成员修饰符,用于控制类成员的可访问性:

  • public:默认修饰符,表示成员可以在类的内部和外部访问。
  • private:表示成员只能在类的内部访问。
  • protected:表示成员可以在类的内部和派生类中访问。

例如,我们可以将 name 成员改为 private,并在 greet 方法中访问它:

class Person {
  private name: string;
  age: number;

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

  greet() {
    console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
  }
}

3. 继承

TypeScript 支持类的继承,通过使用 extends 关键字来实现。子类可以继承父类的属性和方法,并且可以覆盖父类的方法或添加新的方法。

以下是一个继承的示例:

class Student extends Person {
  studentId: string;

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

  study() {
    console.log(`${this.name} is studying.`);
  }
}

在上面的例子中,Student 类继承自 Person 类,并添加了一个新的成员 studentId 和一个 study 方法。

4. 多态

多态是面向对象编程的一个重要概念,它允许不同的对象对同一个方法做出不同的响应。在 TypeScript

中,我们可以使用类的继承和方法的重写来实现多态。

以下是一个多态的示例:

class Animal {
  name: string;

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

  makeSound() {
    console.log("Generic animal sound.");
  }
}

class Dog extends Animal {
  makeSound() {
    console.log("Woof!");
  }
}

class Cat extends Animal {
  makeSound() {
    console.log("Meow!");
  }
}

function playWithAnimal(animal: Animal) {
  animal.makeSound();
}

const dog = new Dog("Buddy");
const cat = new Cat("Whiskers");

playWithAnimal(dog); // 输出 "Woof!"
playWithAnimal(cat); // 输出 "Meow!"

在上面的例子中,Animal 类定义了一个 makeSound 方法,而 DogCat 类分别重写了这个方法。通过将不同的对象传递给 playWithAnimal 函数,我们可以实现多态,使得每个对象都发出不同的声音。

5. 提升代码可维护性和可扩展性

使用类的概念可以提高代码的可维护性和可扩展性。通过将相关的数据和方法封装在一个类中,可以提高代码的组织性和可读性。类的继承和多态让我们能够构建更具灵活性的代码结构,使得代码更容易扩展和重用。

此外,TypeScript 还提供了接口(interface)的概念,可以进一步定义类的结构和行为。接口可以用于约束类的实现,使得代码更加规范和可靠。

标签:TypeScript,name,age,多态,class,string
From: https://www.cnblogs.com/DTCLOUD/p/17504696.html

相关文章

  • C# and TypeScript – Enum Flags
    前言以前就有提过EnumFlags,但平日不常用.最近翻Angular源码,发现它很多地方用到,而且没有封装语义代码.一堆符号真的看不惯啊...于是又去复习了一遍,熟悉熟悉.顺便写一篇做记入呗.这篇C#和TypeScript会一起讲. 参考 深入理解TypeScript–枚举Enum,Fl......
  • 提高开发效率的 TypeScript 技巧
    TypeScript是一种由Microsoft开发的强类型的JavaScript超集语言,它为JavaScript添加了类型检查和更强大的开发工具支持。在使用TypeScript进行项目开发时,掌握一些技巧可以大大提高开发效率和代码质量。本文将介绍一些实用的TypeScript技巧,帮助开发者更好地利用TypeScri......
  • typescript之ECMAScript5、ES6
    1、基础常识1.1简介ECMAScript(/ekma/,简称ES)是javascript的标准化规范,其实javascript是ECMAScript的扩展语言。ES定义了一些标准的语法,JS对其进行了DOM、BOM扩展。1.2ES迭代史ES6(又叫ES2015)是ECMA协会在2015年6月发行的一个版本,因为是ECMAScript的第6个版本,所以也称为ES......
  • TypeScript中的数据类型
    1.js有的类型boolean类型、number类型、string类型、array类型、undefined、null2.ts多出的类型tuple类型(元组类型)、enum类型(枚举类型)、any类型(任意类型)3.特别的类型 void类型(没有任何类型)表示定义方法没有返回值 never类型:是其他类型(包括null和undefined)......
  • TypeScript函数
    1.ts函数定义       //es5函数声明       functionrun3(){           return'run'       }       //es5匿名函数       varrun4=function(){           return'run'       }   ......
  • VS编译错误 【xxx.exe 已退出,代码为 9】【Microsoft.TypeScript.targets(561,5): erro
    先直接上图。错误列表报错如下: 输出列表报错如下: 解决思路如下:1、查了百度,没找到有用的东西。2、看了微软的官方,MSB6006:“process”在退出时出现代码`exitcode`。-MSBuild|MicrosoftLearn原文是“执行命令并返回非零退出代码或指示其输出中出现错误时,会发生此错......
  • typescript Any.Pack
    IMessagebody;UserLoginRequestreq=newUserLoginRequest();req.AuthToken="8";Requestsy=newRequest();sy.Token="hello";sy.Body=Any.Pack(req);byte[]bs=sy.ToByteArray();stringhexString=BitConverter.ToString(bs);......
  • [Typescript 5.2] New Keyword: using
    TypeScript5.2willintroduceanewkeyword-'using'-thatyoucanusetodisposeofanythingwitha Symbol.dispose functionwhenitleavesscope.Thiscansimpfiythetry/finallyrelatedcode:function*g(){consthandle=acquireFileHa......
  • 用 Typescript 搭建 Nodejs Server
    Typescript是微软开发的自由和开源的变成语言,是Javascript的超集,它可以编译成Javascript。Typescript支持Javascript的语法,同时它又包含了类型定义、接口、枚举、泛型等很多后端语言的特点,能在编译时支持类型检查,因此可以很好的提升代码质量。本文将演示如何使用Typescipt......
  • [ts]typescript高阶之typeof使用
    LcukyCola前端工具官网:https://luckycola.com.cn/public/dist/#/前言学习目标1、typeof与对象结合使用2、typeof与枚举结合使用3、typeof与class类结合使用4、const断言的使用一、typeof与对象结合使用代码如下(示例):letlolo={name:'zhanhsan',age:18,ch......