Conditional Types and Infer 10 exercises
Problem

# Introducing infer for Conditional Logicself.__wrap_balancer=(t,e,n)=>{n=n||document.querySelector(`[data-br="\${t}"]`);let o=n.parentElement,r=E=>n.style.maxWidth=E+"px";n.style.maxWidth="";let i=o.clientWidth,s=o.clientHeight,c=i/2,u=i,d;if(i){for(;c+1<u;)d=~~((c+u)/2),r(d),o.clientHeight==s?u=d:c=d;r(u*e+i*(1-e))}};self.__wrap_balancer(":Rhd9j6:",1)

In this exercise we're going to take our first look at infer.

Before you go any further, please take some time to carefully read over this section of the TypeScript docs.

It's important that you start building an understanding of what's going on with infer before moving on to this challenge.

He

## Transcript

0:01 In this section, we're going to learn about something called infer. Now, infer can confuse a lot of people, so make sure you read the docs really, really carefully and try to understand what's going on with it before you process even what this task is doing.

0:16 Here, we're creating a function called GetDataValue -- sorry, a type function -- where we should be able to pass in something that has a data attribute here. This data attribute, we basically want to return from this type function whatever is in that data slot.

0:34 Here, this hello is being extracted out there. Here, we have name hello. That's being extracted out there too. In here, we have data name hello age 20, blah, blah, blah, blah, blah. If it doesn't conform to that, we should be returning never as well.

0:52 That's your job. We probably need to do some kind of conditional check to make sure that the T here is being passed in as data. If it is being passed in as data, we need to then extract out that information in order to return it.