在上一个用法中,我们使用Exclude来排除掉其他不需要的属性,但是在上述示例中的写法耦合度较高,当有其他类型也需要这样处理时,就必须再实现一遍相同的逻辑,不妨我们再进一步封装,隐藏这些底层的处理细节,只对外暴露简单的公共接口,示例如下:
// 使用Pick和Exclude组合实现 type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; interface User { id: number; name: string; age: number; gender: number; email: string; } // 表示忽略掉User接口中的age和email属性 type OmitUser = Omit<User, "age" | "email">; // 等价于 type OmitUser = { id: number; name: string; gender: number; }; let user: OmitUser = { id: 1, name: 'tom', gender: 1 };
在上述示例中,我们需要忽略掉User接口中的age和email属性,则只需要将接口名和属性传入Omit即可,对于其他类型也是如此,大大提高了类型的可扩展能力,方便复用。
总结
在本文中总结了几种TypeScript的使用技巧,如果在我们的TypeScript项目中发现有很多类型声明的地方具有共性,那么不妨可以使用文中的几种技巧来对其进行优化改善,增加代码的可维护性和可复用性。笔者之前使用TypeScript的机会也不多,所以最近也是一边学习一边总结,如果文中有错误的地方,还希望能够在评论区指正。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。
您可能感兴趣的文章: