关于交叉类型的控制台报错

来源:9-6 AutoComplete 支持自定义模版

猪猪oO

2020-04-05

请问老师,我直接将提交中的代码拷贝到ide中,控制台报截图中的问题,我不理解为什么会出现,麻烦解答下,谢谢
图片描述图片描述

写回答

2回答

张轩

2020-04-06

同学你好 这个代码在这个章节确实有一些小问题 但是当时编辑器没有报错 故没有发现,最后提交的代码已经修复了这个 bug,因为我们在 renderOption 这个函数中item的类型, DataSourceType<LakerPlayerProps> 和 DataSourceType 是不一样的,所以会报这个错误,我们可以使用类型断言解决这个问题。 函数稍微修改一下。

const renderOption = (item: DataSourceType) => {
    const itemWithNumber = item as DataSourceType<LakerPlayerProps>
    return (
    <>
        <b>名字: {itemWithNumber.value}</b>
        <span>球衣号码: {itemWithNumber.number}</span>
    </>
    )
}

谢谢你认真代码后的发现。

7
2
Shiyu_2020
老师, 如果代码写成export type DataSourceType = T & DataSourceObject, 这种写法会产生不可预知bug吗?泛型为any的话, 什么interface都能够传进来。
2020-09-05
共2条回复

pino宋

2020-04-15

interface LakerPlayerProps{

value:string;

number?:number;

}

这样好像也可以

0
0

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2123 学习 · 959 问题

查看课程