typescript - 带有签名的打字稿箭头函数接受错误的参数
问题描述
考虑类型:
type GenericFunction = <T>(props: Array<T>) => void
和箭头功能:
const test: GenericFunction = <X>(props: X) => {
let dd: X }
尽管类型定义为参数,但为什么test
函数接受作为
参数?X
GenericFunction
Array<T>
解决方案
有一些类型X
会满足 的签名GenericFunction
,这就是编译器不给出错误的原因。现在只有一个隐式约束,它X
必须是数组类型。
仅当您添加X
与此隐式约束冲突的约束时,您才会收到错误:
// this gives a compile error
const test: GenericFunction = <X extends number>(props: X) => {};
推荐阅读
- email - 403:提供的用户凭据没有必要的访问范围使用 Beta API 查询电子邮件消息
- multithreading - 多线程客户端,在队列中发送数据并将数据存储在另一个队列中,同时在 Rust Tokio 中不阻塞
- python-3.x - 如何从 Dramatiq python 中获取处理后的结果?
- python - 复杂的(对我来说!) for with for if 正在通过 else 语句
- django - django 在模板中渲染 CreateWithInlinesViews 的额外视图
- java - 使用 logback 使用自定义编码器限制消息大小
- reactjs - Google play 控制台崩溃错误无法理解
- javascript - 强制第一个项目在数组拼接中显示 onclick
- python - 在不同的页面中返回过滤结果 - Django
- javascript - 如何从 javascript 对象中获取名称和值到新列表中?