如何在 TypeScript 中从类型中排除属性?
大家好!我开始学习 TypeScript,遇到了一个自己无法解决的问题。我有一个用户接口:
```typescript
interface User {
id: number;
name: string;
email: string;
password: string;
createdAt: Date;
}
```
我需要创建一个新类型,表示没有 `password` 字段的用户,例如用于 UI 显示或传递给客户端。我不想手动复制整个接口并删除一个字段,因为这违反了 DRY 原则并增加了维护难度。我听说过 TypeScript 的内置工具类型,如 `Pick`、`Partial`、`Omit`,但不确定哪个适合我的需求。
我尝试过使用 `Pick`:
```typescript
type UserWithoutPassword = Pick;
```
这有效,但如果接口有 20 个字段,列出除一个之外的所有字段很不方便。也许有一种方法可以“排除”属性,而无需列出其余属性?请告诉我如何正确实现。