请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问老师,能写一个小dom说明一下RecordType这个类型的推断过程吗?

请问老师,能写一个小dom说明一下RecordType这个类型的推断过程吗?
只要有dome就行…不过讲解过程…

interface Test1<RecordType = unknown> {
data?: RecordType;
outData?: RecordType;
}

const test1: Test1 = {
data: {
name: 10,
age: 11,
} as {name:number,age:number},
outData: null,
};

test1.data.

我写成这样,但是test1.data无法点出name和age,则outData就更无法点出了…
很想知道这个类型推断的过程,求老师成全…
只要能写一个dome就行…过程我可以自己研究…谢谢老师.

正在回答 回答被采纳积分+3

2回答

提问者 卷狗 2021-09-17 12:17:32

//img1.sycdn.imooc.com//szimg/614416f509d228e904900219.jpg

老师请看..我想表达的是这个意思.  期望是最后一句不用写 【as person】.就能直接点出age和name属性...

因为我的setData函数中已经设置了person,然后就希望TestImp能自动推断出我的data类型.而不是从<T>中传入..

因为我们在使用 antd 中 table组件 时,也没有通过<T> 指定 RecordType 的类型,而是直接设置了data,它就直接反推出columns中RecordType 的值...我想请问老师的就是这个推断过程...

补充:我的setData方法,就想当于table组件的props传入data...



0 回复 有任何疑惑可以回复我~
Nolan 2021-09-16 23:42:33
interface Test1<RecordType = unknown> {
    data?: RecordType;
    outData?: RecordType;
}

const test1: Test1<{ name: number, age: number } | null> = {
    data: {
        name: 10,
        age: 11,
    },
    outData: null
};

test1.data?.name

这样写好一些

0 回复 有任何疑惑可以回复我~
  • 提问者 卷狗 #1
    谢谢老师,可能 是我没有表达清楚...我的意思就是不用显示定义泛型的类型,而让Test1类可以自动推断出来..
    .我再发个带图的回复请老师帮看看..
    回复 有任何疑惑可以回复我~ 2021-09-17 12:13:24
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信