var = ({ data }: { data: interfaceModel }) => (
// data is used here
)
What does this syntax mean? I know that the second data has an interface of interfaceModel. But why are there two occurrences of data?
CodePudding user response:
It means that it is a function and its argument must be an object which should contain a key data and data should contain keys which are defined in interfaceModal, { data } this is the argument, { data: interfaceModel } this is the type
example
interface interfaceModel {
name:string
age:number
}
interface DataModel {
data: interfaceModel
}
const myFunc = ({ data }: { data: interfaceModel }) => (
// data is used here
)
let myData:DataModel = {data:{name:'Your name', age:32}}
myFunc(myData);
myFunc can also be defined like
const myFunc = (myData:dataModel) => (
// myData.data is used here
)
CodePudding user response:
var = ({ data }: { data: interfaceModel }) => (
// data is used here
)
First { data } is a destructured property. You can write the same function in this way:
var = (props: { data: interfaceModel }) => (
props.data // valid
)
Second {data: interfaceModel} is just a literal representation of type.
You can rewrite it in this way:
interface Data {
data: interfaceModel
}
var = (props: Data) => (
props.data // valid
)
