typescript - TypeScript - 字符串键接口的属性不作为字符串类型传递
问题描述
我遇到了将键定义为字符串的接口的问题。它的属性不能传递给接受字符串类型的函数。我已将其简化为最简单的情况。
(游乐场链接)
interface Props {
[key: string]: any
}
function setPropInternal(prop : string, value : any) : void {}
function setProp<T extends keyof Props>(prop: T, value: Props[T]) : void {
// Why does this throw an error if key is defined as a string? (line 2)
// Error at prop:
// Argument of type 'T' is not assignable to parameter of type 'string'.
// Type 'string | number' is not assignable to type 'string'.
// Type 'number' is not assignable to type 'string'.
setPropInternal(prop, value);
}
解决方案
推荐阅读
- purescript - purescript的类型系统可以解决结节的行吗
- r - 使用 dplyr 基于 R 中的其他两列自定义变异新列
- r - sqldf() 中的 count distinct 和 tidy 代码之间相差一个
- java - 当从intellij运行时,为什么运行我的jar会导致这个异常?
- json - 通过 props 将对象从 Laravel 刀片传递到 Vue 将数值转换为字符串
- android - 关于在activity/fragment构造函数中定义资源布局id的问题
- python - 如何在seaborns中添加每组的平均线
- angular - Angular 中的 Selenium 测试问题(isStable 始终为假)
- javascript - React + D3:散点图中 Y 轴上的数据显示不正确
- asp.net-core - 如何正确验证具有空受众的 Cognito JWT 并在之后进行身份验证?