当前位置: 首页 > 知识库问答 >
问题:

javascript - typescript 如何定义一个字段可能是多种类型的一种?

栾耀
2024-01-09

typescript 中一个字段是多个类型中的一种,这个字段的类型改如何定义呢?使用联合类型报错;

interface IText{text:string;}interface IImage{width:number;height:number:size:number;}interface IFile{url:string;name:string;}interface Message{id:string;payload:IText|IImage|IFile????}

payload 可能是上面三种的一种,这个改如何定义呢?上面写法报错

共有1个答案

须捷
2024-01-09

试一下这样

interface IText{}interface IImage{}interface IFile{}type AllTypes = IText | IImage| IFileinterface Message{    id:string;    payload:AllTypes }

是不是你安装的TS有问题,或者是别的什么问题,我在官方在线编辑器里面也没报错
传送门

 类似资料:
  • 我想从我的api发送一个响应,所有响应都有一个统一的结构 我希望数据能够成为不同的结构,而不仅仅是单个数据结构。我可以说我没有正确使用这种模式。完成这种事情的正确方法是什么?有没有办法让结构字段能够成为具有相同键的任何类型?

  • 代码如下,这是一段示例代码 那段for循环是想过滤有效数据。 问题是这段代码ts报错,代码逻辑没问题,问题的根本出在MenuItem的类型定义上,本意是想定义一个二级级联数据MenuItem,之所以使用T extends string而不是直接写为string,是因为在某些交互函数的参数中,希望将代表command的参数定义一个固定的可选数据CommandType。 当有子级数据的时候,关心的是子

  • 问题内容: 我想反序列化JSON(使用Jackson 1.9.11和RestTemplate 1.0.1),其中一个字段可能具有更多类型含义,例如: 要么 一个或另一种情况对于一个特定类型的设置器(String od custom Response类)都可以正常工作,但是当我将实体bean重写的设置器放入能够处理这两种情况时,将引发异常: 我当时在考虑三种解决方案,但没有任何一种可行: 仅使用St

  • 问题内容: 我正在尝试使用Go语言,并且对它很陌生。我已经成功地完成了教程,现在正在编写一个小程序来评估其通常执行的操作类型的性能。我有一个很长的float32类型切片,需要将其尽可能有效地转换为float64类型的切片。除了遍历slice的元素并通过output [i] = float64(data [i])显式转换单个元素的类型外,还有没有一种方法可以用来转换整个slice而无需迭代?我曾尝试

  • 问题内容: 有没有一种方法可以将几个字段定义为Django中唯一的字段? 我有一张(期刊的)卷表,而我不希望同一期刊有一个以上的卷号。 我试图将属性放在字段中但是它不起作用。 问题答案: 有一个简单的解决方案称为unique_together,它可以完全满足你的要求。 例如: 在你的情况下: