You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.3 KiB
37 lines
1.3 KiB
// 基于类的面向对象编程示例
|
|
|
|
// 定义一个User类,用于表示用户信息
|
|
class User {
|
|
// 声明类的属性
|
|
fullName: string; // 用户的全名
|
|
firstName: string; // 用户的名
|
|
lastName: string; // 用户的姓
|
|
|
|
// 类的构造函数,用于初始化实例
|
|
// 参数:firstName(名)、lastName(姓)
|
|
constructor(firstName: string, lastName: string) {
|
|
this.firstName = firstName; // 初始化名
|
|
this.lastName = lastName; // 初始化姓
|
|
this.fullName = firstName + ' ' + lastName; // 拼接全名
|
|
}
|
|
}
|
|
|
|
// 定义Person接口,规定了包含firstName和lastName属性的对象结构
|
|
interface Person {
|
|
firstName: string; // 名
|
|
lastName: string; // 姓
|
|
}
|
|
|
|
// 定义greeter函数,用于向符合Person接口结构的对象打招呼
|
|
// 参数:person(符合Person接口的对象)
|
|
function greeter2(person: Person) {
|
|
// 返回拼接好的问候语
|
|
return 'Hello, ' + person.firstName + ' ' + person.lastName;
|
|
}
|
|
|
|
// 创建User类的实例,传入名"Yee"和姓"Huang"
|
|
let user2 = new User('Yee', 'Huang');
|
|
|
|
// 调用greeter函数并打印结果
|
|
// 虽然传入的是User实例,但User类包含firstName和lastName属性,符合Person接口要求,因此可以正常使用
|
|
console.log(greeter2(user2)); // 输出:Hello, Yee Huang
|