面试题答案
一键面试类同时声明值和类型
在TypeScript中,类可以同时声明值和类型。类的定义不仅描述了对象的结构(属性和方法),即值,同时也定义了一种类型。
- 声明值:通过在类中定义属性和方法来声明值。例如:
class Person {
// 声明属性(值)
name: string;
age: number;
// 声明方法(值)
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet() {
return `Hello, my name is ${this.name} and I'm ${this.age} years old.`;
}
}
这里name
、age
属性以及greet
方法都是类声明的值。
- 声明类型:类本身就是一种类型。在上述例子中,
Person
类定义了一种类型,该类型的对象具有name
(字符串类型)、age
(数字类型)属性以及greet
方法。
在函数参数和返回值中应用类声明的类型
- 函数参数中应用:可以将类作为参数类型来确保传入的对象符合该类定义的结构。
function printPerson(person: Person) {
console.log(person.greet());
}
const john = new Person('John', 30);
printPerson(john);
这里printPerson
函数接受一个Person
类型的参数,只有符合Person
类结构的对象才能作为参数传入。
- 函数返回值中应用:函数也可以返回一个类类型的对象。
function createPerson(name: string, age: number): Person {
return new Person(name, age);
}
const jane = createPerson('Jane', 25);
console.log(jane.greet());
createPerson
函数返回一个Person
类型的对象,调用者可以根据Person
类的结构来使用返回的对象。