TypeScript 中的静态类
本教程将讨论在 TypeScript 中定义静态类的指南以及开发人员和 TypeScript 社区使用的实践。
TypeScript 中的静态类
静态类
可以定义为除了从对象继承之外不能被继承的密封类。静态类
无法实例化,这意味着你无法从静态类引用创建实例变量。
在 TypeScript 中,我们没有称为静态类
的构造,只有一个实例的类通常表示为常规对象。我们不需要 TypeScript 中的静态类
语法,因为顶级函数(甚至是对象)也可以完成这项工作。
代码:
// Unnecessary "static" class
class staticClass {
static something() {
console.log("Something")
}
}
let obj = new staticClass();
// will produce an error.
console.log(obj.something)
// Preferred (alternative 1)
function something() {}
// Preferred (alternative 2)
const helperObject = {
dosomething() {
console.log("Helper object","1")
},
};
console.log(helperObject.dosomething(),"2")
调用静态类 something()
方法将产生一个错误,因为它是静态的,而这种方法的替代方法是我们可以使用该对象来执行相同的操作。两种方法的输出分别产生以下输出。
输出:
由于静态类
不可用,我们看看如何定义静态类
的替代品。
TypeScript 中的抽象类
TypeScript 中的抽象类用于继承,其他类可以从它们派生。我们无法实例化抽象类
意味着你无法创建此类的对象。
这将满足 TypeScript 中静态类
的标准。抽象类
可以包括一个或多个抽象
方法或属性。
扩展抽象类
的类签订了一个约定,它将实现其所有父类方法或以其他方式声明为抽象。下面的例子是一个 abstract
类,它声明了一个名为 find()
的抽象方法并包含 display
方法。
代码:
abstract class Person {
name: string;
constructor(name: string) {
this.name = name;
}
displayName(): void {
console.log(this.name);
}
abstract find(string: any): Person;
}
class Employee extends Person {
employeeCode: number;
constructor(name: string, code: number) {
super(name); // must call super()
this.employeeCode = code;
}
find(name: string): Person { // execute AJAX request to find an employee from a db
return new Employee(name, 1);
}
}
let newEmp: Person = new Employee("James", 100);
newEmp.displayName(); //James
let emp2: Person = newEmp.find('Steve');
上面的代码有一个被声明为抽象的 Person
类,带有一个实例变量 name
,标准方法 displayName()
,它显示 name
,以及一个由扩展 Person
的任何子类实现的抽象方法班级。
从子类 Employee
的父引用 Person
类创建对象后,将执行所需的实现。
输出:
让我们考虑以下示例,其中表明抽象类也可以具有抽象属性。
代码:
abstract class Person {
abstract name: string;
display(): void{
console.log(this.name);
}
}
class Employee extends Person {
name: string;
empCode: number;
constructor(name: string, code: number) {
super(); // must call super()
this.empCode = code;
this.name = name;
}
}
let emp: Person = new Employee("James", 100);
emp.display(); //James
此第二个代码片段产生与抽象类主题下的第一个代码相同的输出。
相关文章
在 TypeScript 中使用 try..catch..finally 处理异常
发布时间:2023/03/19 浏览次数:181 分类:TypeScript
-
本文详细介绍了如何在 TypeScript 中使用 try..catch..finally 进行异常处理,并附有示例。
在 TypeScript 中使用 declare 关键字
发布时间:2023/03/19 浏览次数:97 分类:TypeScript
-
本教程指南通过特定的实现和编码示例深入了解了 TypeScript 中 declare 关键字的用途。
在 TypeScript 中 get 和 set
发布时间:2023/03/19 浏览次数:172 分类:TypeScript
-
本篇文章演示了类的 get 和 set 属性以及如何在 TypeScript 中实现它。
在 TypeScript 中格式化日期和时间
发布时间:2023/03/19 浏览次数:161 分类:TypeScript
-
本教程介绍内置对象 Date() 并讨论在 Typescript 中获取、设置和格式化日期和时间的各种方法。
在 TypeScript 中返回一个 Promise
发布时间:2023/03/19 浏览次数:182 分类:TypeScript
-
本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。
在 TypeScript 中定义函数回调的类型
发布时间:2023/03/19 浏览次数:221 分类:TypeScript
-
本教程说明了在 TypeScript 中为函数回调定义类型的解决方案。为了程序员的方便和方便,实施了不同的编码实践指南。
在 TypeScript 中把 JSON 对象转换为一个类
发布时间:2023/03/19 浏览次数:110 分类:TypeScript
-
本教程演示了如何将 JSON 对象转换为 TypeScript 中的类。
使用 NPM 将 TypeScript 更新到最新版本
发布时间:2023/03/19 浏览次数:130 分类:TypeScript
-
本教程说明了如何使用 npm 更新到最新版本的 TypeScript。这将为如何使用 npm 将 TypeScript 更新到最新版本提供完整的实际示例。
使用 jQuery 和 TypeScript
发布时间:2023/03/19 浏览次数:151 分类:TypeScript
-
本教程提供了使用 jQuery 和 TypeScript 的基本理解和概念。