reactjs - TypeScript - 检查未知类型的变量是否具有某些属性
问题描述
我正在使用 typescript inrelay
并且props
传递下来的 type 是unknown
. 我尝试了几种方法来说服编译器它可以具有某些属性,但它一直向我显示错误:
<QueryRenderer
environment={environment}
query={testQuery}
variables={{}}
render={({ error, props }) => {
if (error) {
return <div>Error!</div>;
}
if (!props) {
return <div>Loading...</div>;
}
if (!!props && _.isObject(props) && props.hasOwnProperty("Messages"))
return <MessageList messages={props.Messages} />;
}}
/>;
上面的代码不起作用,打字稿仍然警告我
“对象”类型上不存在属性“消息”。
如何使这个简单的示例工作而不使我的代码看起来很可怕?非常感谢!
解决方案
您应该从查询中注释特定的 GraphTaggedNode。这将是您的testQuery
变量中的查询名称。在下面的示例中,我将其称为 TestQuery。但它应该以FileName_Query
in pascal 大小写为前缀。
你props
现在应该用TestQueryResponse
.
<QueryRenderer<TestQuery>
...
/>
推荐阅读
- python - 我不知道我做错了什么,我已经按照指南进行操作,可能是过时的软件问题还是什么?
- typescript - 如何创建 Typescript 映射类型以将元素数组映射到由每个条目的属性键入的 Record?
- c# - 未应用列表框项样式
- python - 如何将对象数组的字符串表示形式转换为对象数组?ast 似乎不起作用
- python - 如何将我从 txt 文件编译的文本放入数据框中的相应行?
- reactjs - 如何在 React 中为 setInterval 创建一个循环?
- linux - Linux/Debian 相当于 macOS 的日期 -jf,设置源日期格式?
- amazon-web-services - AWS RDS MariaDB 在检索数据时超时
- django - Django 单元测试 - 修补外部 api 的多个请求
- recursion - 类图,如何显示递归类?