MST

星途 面试题库

面试题:TypeScript模块类型扩展应用

现有一个TypeScript模块,定义了一个类`User`,包含`name`和`age`属性。现在需要在另一个模块中对`User`类进行扩展,添加一个`email`属性,并且要保证类型检查的正确性,写出具体实现代码。
36.4万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

假设第一个模块user.ts代码如下:

// user.ts
export class User {
    constructor(public name: string, public age: number) {}
}

在另一个模块extendedUser.ts中进行扩展:

// extendedUser.ts
import { User } from './user';

export class ExtendedUser extends User {
    constructor(name: string, age: number, public email: string) {
        super(name, age);
    }
}

这样就完成了对User类的扩展,添加了email属性,并且在TypeScript中能保证类型检查的正确性。在使用时:

// main.ts
import { ExtendedUser } from './extendedUser';

const user = new ExtendedUser('John', 30, 'john@example.com');
console.log(user.name);
console.log(user.age);
console.log(user.email);