如何解决TypeScript开发中只选一个改写的小状况?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1346个文字,预计阅读时间需要6分钟。
目录+前言+背景+初步方案+最终方案+总结+前言+在项目开发中,使用TypeScript的过程中遇到了一些状况、报错或瓶颈的情况,决定开启一个系列记录遇到的问题和我的解决方法。+背景+在项目开发中,使用TypeScript的过程中遇到了一些状况、报错或瓶颈的情况。+前言+
目录
- 前言
- 背景
- 初步方案
- 终极方案
- 总结
前言
在项目内,使用TypeScript的过程中遇到了一些状况、报错或棘手的情况,决定开一个系列记录遇到的问题和我的解决方法。
背景
在项目开发中,很多时候会遇到一种场景,需要定义一个对象的类型,此类型必须包含某n个字段中的其中一种。
例如,我要定义一个工程师(Engineer)的对象,里面包括姓名(name),性别(gender),年龄(age)和一门编程语言(java/cpp/go/js四选一)的评价。
显然,前三个字段都是很简单的,但是第四个就有点麻烦了。首先,第四个字段的key是可以不一样(甚至value也有可能不同),其次字段只能从给定的里面4选1。
初步方案
一开始是考虑使用可选或联合类型,但是发现没有办法进行4选1的限制,对于没有编程语言字段,或者多个编程语言字段的情况并没有很好的限制。最后只能使用泛型,再使用时进行显式的声明。
本文共计1346个文字,预计阅读时间需要6分钟。
目录+前言+背景+初步方案+最终方案+总结+前言+在项目开发中,使用TypeScript的过程中遇到了一些状况、报错或瓶颈的情况,决定开启一个系列记录遇到的问题和我的解决方法。+背景+在项目开发中,使用TypeScript的过程中遇到了一些状况、报错或瓶颈的情况。+前言+
目录
- 前言
- 背景
- 初步方案
- 终极方案
- 总结
前言
在项目内,使用TypeScript的过程中遇到了一些状况、报错或棘手的情况,决定开一个系列记录遇到的问题和我的解决方法。
背景
在项目开发中,很多时候会遇到一种场景,需要定义一个对象的类型,此类型必须包含某n个字段中的其中一种。
例如,我要定义一个工程师(Engineer)的对象,里面包括姓名(name),性别(gender),年龄(age)和一门编程语言(java/cpp/go/js四选一)的评价。
显然,前三个字段都是很简单的,但是第四个就有点麻烦了。首先,第四个字段的key是可以不一样(甚至value也有可能不同),其次字段只能从给定的里面4选1。
初步方案
一开始是考虑使用可选或联合类型,但是发现没有办法进行4选1的限制,对于没有编程语言字段,或者多个编程语言字段的情况并没有很好的限制。最后只能使用泛型,再使用时进行显式的声明。

