TypeScript 中的类
就 OOP 而言的类是创建对象的蓝图。 TypeScript 支持面向对象的编程功能,如类、接口、多态性、数据绑定等。对象意味着这是一个真实世界的实体。 JavaScript ES5或更早版本不支持类。 Typescript 从ES6继承了这个特性。
在类中具有共同属性的对象组。类包含字段、方法、构造函数、块、嵌套
类和接口。
声明类的语法:
class class_Name{
field;
method;
}
在这里,代替class_Name,名称将在那里,并且在字段和方法或函数内部。
如果我们编译它,它将生成 JavaScript 代码。
// Generated by typescript 1.8.10
var Person = (function () {
function Person() {
}
return Person;
}());
我们将看到一个简单的例子:
class Person {
perCode: number;
perName: string;
constructor(code: number, name: string) {
this.perName = name;
this.perCode = code;
}
getGrade() : string {
return “A+” ;
}
}
该示例声明了一个 Student 类,该类具有两个字段perCode和perName以及一个构造函数,该构造函数是负责变量或对象初始化的特殊类型的函数。这是参数化的构造函数。而this关键字指的是类的当前实例。
getGrade()是一个简单的函数。
TypeScript 编译器会将上述类转换为 JavaScript 代码:
对象
对象是包含一组键值对的类的实例。它的值可能是标量值或函数,甚至是其他对象的数组。
语法如下?
var object_name = {
// scalar value
key1: “value”,
// functions
key2: function() {
},
// collection
key3:[“content1”, “content2”]
};
对象可以包含标量值、函数和结构,如数组和元组。
我们可以用字面量符号表示对象:
var person = {
fName:”Marry”,
lName:”Jerry”
};
// Access the object values
console.log(person.fName)
console.log(person.lName)
Marry
Jerry
让我们看一个简单的例子:
var person = {
fName:”Vivek”,
lName:”Hanks”,
// Type template
Hello:function() { }
}
person.Hello = function() {
console.log(“hello “+person.fName)
}
person.Hello()
输出:
hello Vivek
对象作为函数参数
var person = {
fname:”Vivek”,
lname:”Ranjan”
};
var hello = function(obj: { fname:string, lname:string }) {
console.log(“first name :”+obj.fname)
console.log(“last name :”+obj.lname)
}
hello(person)
输出:
first name :Vivek
last name :Ranjan
用于创建实例对象。
要创建类的实例,请使用new关键字后跟类名。在运行时借助new为对象分配内存。堆内存区域中所有对象的内存分配。下面给出:
var object_name = new class_name([ arguments ])
请参阅简单的示例声明:
// Creating an object or instance
let obj = new Student();
访问属性和函数:
对象可以访问类的属性和功能。在...的帮助下 ' 。 ' 点符号我们访问一个类的数据成员。
// Accessing an attribute
obj.field_name
// Accessing a function
obj.function_name()
我们将通过示例看到:
class Car {
// Field
engine:string;
// Constructor
constructor(engine:string) {
this.engine = engine
}
// Function
display():void {
console.log(“Function displays Engine is :”
+ this.engine)
}
}
// Create an object
var o1 = new Car(“geeks”)
// Access the field
console.log(“Reading attribute value Engine as: ”
+ o1.engine)
// Access the function
o1.disp()
编译后,这将转换为 JavaScript 代码,如下所示:
//由打字稿1.8.10生成
var Car = (function () {
// Here is constructor
function Car(engine) {
this.engine = engine;
}
// Function working
Car.prototype.display = function () {
console.log(“Function displays Engine is: ”
+ this.engine);
};
return Car;
}());
// Create an object
var o1 = new Car(“geks”);
// Access the field value
console.log(“Attribute value Engine as: ”
+ o1.engine);
// Access the display function
o1.display();
输出:
Attribute value Engine as : geeks
Function displays Engine is : geeks