typescript - 带有 Object 的声明类型原语会导致错误
问题描述
代码:
export type TestType =
| string
| number
| { value?: string, label?: string }
| { num1: number, num2: number }
| null;
const data: TestType;
data?.value // error;
错误:
Property 'value' does not exist on type 'TestType'.
Property 'value' does not exist on type 'string'
如果:
const data: TestType = { num1: 10, num2: 20 };
console.log(data.num1);
但问题是:这种类型在对象数组中使用,它可以是运行时描述的类型之一
解决方案
所以解决方法是使用as
:
type ObjectType = {
value: string,
label: string
};
export type TestType =
| string
| number
| ObjectType
| null;
const data: TestType;
(data as ObjectType)?.value; // works
推荐阅读
- arrays - PostgreSQL:多列精确匹配
- c# - 替换函数 - 没有重载方法错误 C# - 试图删除字符串中的部分
- python - 带有 numpy/pytorch 的量化向量
- python - 在 Python 中使用列表推导解析嵌套的 JSON
- python - write_pandas 雪花连接器功能无法在表上操作
- javascript - 嵌套对象 - 接口与记录类型?
- android - Android Fragment isAdded 配置更改后返回 false(屏幕旋转)
- android - 运行“expo 弹出”后,仅显示 android 包。有什么方法可以像常规反应本机项目一样获取 ios 文件夹?
- javascript - 如何将 Razor for 循环变量的 ID 传递给 javascript
- c# - 从自定义非 UI 线程获取 SelectedIndex