typescript - 区分联合和重新定义属性类型
问题描述
我在 typescript 3.9.7 中遇到以下问题。给定以下代码:
type A = {
type: string;
cellRendererParams: any;
filter: string;
};
type C = {
type: 'yy';
cellRendererParams: {
test: any;
};
};
type Combined = A | C;
const u: Combined = {
type: 'yy',
cellRendererParams: { test: 'asd'}
};
我希望打字稿会抱怨,cellRendererParams
但事实并非如此。我认为它发生是因为它能够回退到A
类型。我可以将类型更改为
type A = {
type: string;
cellRendererParams: never;
filter: string;
};
它会起作用,但我仍然想让用户选择创建 A 并指定cellRendererParams
,不幸的是永远不会阻止它。filter
另外,由于某种原因,我可以使用财产。
有一个简单的解决方案吗?
解决方案
推荐阅读
- r - 如何保留相同列名的最后一列?
- python - ImportError: DLL load failed while importing open3d_pybind: 找不到指定的模块
- java - 根据 Azure BlobStorage 中的查询获取 Blob 计数
- python - kivy底部工具栏等多屏
- pyinstaller - 长时间运行的 pyinstaller 应用程序的问题
- outlook - Outlook - Windows Outlook 破坏的自定义位置 - 根据客户端混合新旧数据
- python - 是否可以在 django 管理面板上添加通知或接收更新?
- php - Symfony - 添加了测试失败的方法
- sql-server-2016 - SQL Server 2016 全文索引:什么构成更改?
- reactjs - 如何在 React 中使用条件禁用 div