typescript - 创建具有未知类型的可选未知属性的接口
问题描述
interface Example {
value?: string
[prop: string]: any
}
const xxx: Example = { name: 'Thomas' }
const v = xxx.name
在此处添加“any”实际上会删除推断的名称上的“字符串”类型,否则如果xxx
未分配给示例,则该类型将存在。
有没有办法让接口或类型通过推断类型?
解决方案
您可以使用带有联合的泛型类型:
type WithName<T> = T & { name?: string };
const myThing: WithName<{ foo?: string; bar?: number }> = { name: 'sup'};
推荐阅读
- android - 使用 FFMPEG 以毫秒为单位的无损视频修剪
- qnamaker - 如何使用 Microsoft.Azure.CognitiveServices.Knowledge.QnAMaker nuget 版本 1.0.0 调用我的 api qnamaker
- c# - 如何识别没有AutomationId的winforms按钮控件?
- php - 当我更改实体列名时,我在 Symfony Doctrine 中遇到错误
- bash - 如何将分隔文件中的某些列取消透视为行?
- javascript - 以具有数据属性的元素为目标并动态设置值
- reactjs - 如何在反应中正确使用特定的数组值
- vb.net - webClient.DownloadString 被某些网站阻止并作为检测到的恶意软件做出响应
- jenkins - 是否可以从詹金斯的 lcov 报告中显示趋势?
- javascript - 使用 Number.toLocaleString() 的货币格式差异