typescript - 打字稿'T'不能用于索引类型?但是 T 是“keyof”目标类型
问题描述
type foo = {
asd:""
}
interface FOOS<T = keyof foo> extends foo {
copy(key: T): foo[T]// error
}
Type 'T' cannot be used to index type 'foo'.
我如何告诉 typescript 这个 T 可以用作该类型的键?
解决方案
您的泛型类型的默认值为keyof foo
,但有人仍然可以使用任何不相关的类型对其进行实例化:FOOS<string>, FOOS<unknown>
等等。
尝试限制T
:
interface FOOS<T extends keyof foo= keyof foo> extends foo {
copy(key: T): foo[T]// error
}
推荐阅读
- c++ - 从 bool 获取值时未在此范围内声明 Temp
- python-3.x - Tkinter 调整以网格排列的标签中的图像大小
- ruby - 如何在自定义插件中使用`relative_url`
- javascript - 更改对象数组的数据
- java - 在 Java 中的对象中拆分数组
- html - 在图像标签上使用 onclick 时出现 HTML 语法错误
- python - Python多处理进程在启动后立即死亡
- php - 如何使用 PHP 邮件库在 ubuntu NGINX 服务器上配置 SMTP 设置?
- spacy - spacy nightly (3.0.0rc) load without vocab 如何添加 word2vec 向量空间?
- c# - 如果登录页面有 slug,则使该登录页面的链接包含 slug