typescript - 打字稿自动完成假定泛型数组中的同质值
问题描述
当对数组参数使用泛型时,打字稿自动完成假定所有对象都是同质的。是否有这种行为的解释和/或使自动完成建议瓜的方法?
type Fruits = {apples: number, melons?: number}
const addToBasket = <T extends Fruits[]>(basket: T)=>{
return basket
}
// melons are missing in autocomplete for the second object
addToBasket([{apples:1}, {apples:1 }])
// melons appear in autocomplete for second object
addToBasket([{apples:1, melons: 1}, {apples:1 }])
在上面的第一次调用中addToBasket
,melons
不建议将其作为属性。它确实出现在自动完成中,但仅出现在可能相关的范围内标识符的一般列表中,并且有点隐藏:
请注意列表中的所有排序方式Fruits
,basket
并且melons
未将其标识为属性。相反,在第二次调用中addBasket
,melons
建议将其作为属性:
它在这个 TypeScript 问题中有报道,可能与这个有关。
解决方案
推荐阅读
- .net - 泛型声明一个类
- javascript - 如何使用 jquery 定位最后一个可见元素类型
- puppeteer - 使用 Puppeteer 在每个动态加载的嵌套 iFrame 上评估 javascript
- django - 上传多个文件时如何为每个文件设置外键?
- android - 在 Android SDK 中添加 OpenCV
- r - 是否可以使用 R 作为秒表来测量击键之间经过的时间?
- python - 使用 GloVe 获取文档矢量的快速方法
- sql - PSQL按同一行上的多个条件分组
- reactjs - null 不是对象(评估'Object.Keys(headerParam)')
- channel - 使用 youtube-dl 时如何获取所有频道的视频网址?