Avatar ·

如何在 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 个字段,列出除一个之外的所有字段很不方便。也许有一种方法可以“排除”属性,而无需列出其余属性?请告诉我如何正确实现。