我有这样一些类型:
export interface PublicFileData {
bucketName?: string;
objectName?: string;
}
export interface PrivateFileData {
id: string;
}
// Above types are imprted from other packages
export type Storage =
| { type: "public"; data: PublicFileData }
| { type: "private"; data: PrivateFileData };
它可以工作。但是在不知道FileData类型的情况下,如何将它更改为这样的平面对象?
export type Storage =
| {
type: "public";
bucketName?: string;
objectName?: string;
}
| {
type: "private";
id: string
};
我无法手动执行此操作,因为FileData
类型是从其他位置导入的
也许我需要一个缺失的传播类型运算符!!!
// I wish I had something like this:
export type Storage =
| { type: "public"; ...PublicFileData }
| { type: "private"; ...PrivateFileData };
这怎么可能在 typescript 中实现呢?
1条答案
按热度按时间p8ekf7hl1#
具有交叉点: