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

作者站长头像
站长
· 阅读数 6

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个回答
avatar
test
2024-06-23

试一下这样

interface IText{}
interface IImage{}
interface IFile{}

type AllTypes = IText | IImage| IFile

interface Message{
    id:string;
    payload:AllTypes 
}

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

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容