typescript - 创建一个具有某些特定接口的通用类型接口
问题描述
我真的不知道在谷歌上搜索这个的术语,所以它可能会被重复。
我有一个看起来像的界面
export interface SolidOptions<T> {
position: Cartesian3;
options?: T;
}
现在,我希望这个 T只有3 种类型: CylinderOptions | 矩形选项 | 多边形选项
我不想要这个解决方案:
export interface SolidOptions<T> {
position: Cesium.Cartesian3;
options?: CylinderOptions | RectangleOptions | PolygoneOptions;
}
我想使用它的原因如下:
static generateCylinder = (options: SolidOptions<CylinderOptions>)=> {
}
static generateRectangle = (options: SolidOptions<RectangleOptions >)=> {
}
static generatePolygon = (options: SolidOptions<PolygoneOptions>)=> {
}
并且没有能力将错误的类型传递给错误的函数。
解决方案
您可以在泛型类型参数上定义约束:
export interface SolidOptions<T extends CylinderOptions | RectangleOptions | PolygoneOptions> {
position: Cartesian3;
options?: T;
}
推荐阅读
- r - 在 WordR 上打印一个闪亮的反应值
- c# - 为什么异步扩展方法会抛出 System.NullReferenceException
- docker - 跨 Ingress 的 JMeter 主/从(Docker 到 Kubernetes)(如何让 JMeter 只使用一个 RMI 端口)
- flutter - googleplaystore 的 Flutter 包名称
- c++ - c++ how to bind a general function with multiple map object and call it clear function
- nhibernate - 自定义 IConnectionProvider 如何“注入”所需的依赖项?
- excel - VBA:单步执行时复制和粘贴范围作为图片工作,但运行时出现“运行时错误'1004'”
- postgresql - 在 postgresql 中是否可以直接读取
- java - Spring Boot 中的现有客户端验证?
- arrays - 有没有办法在 Tarantool 中存储数组的字段上建立索引?