var = ({ data }: { data: interfaceModel }) => (
// data is used here
)
这个语法是什么意思?我知道第二个data
的界面是interfaceModel
。但是为什么出现了两次data
呢?
这意味着它是一个函数,它的参数必须是一个应该包含键data
的对象,数据应该包含在interfaceModal中定义的键,{data}这是参数,{data: interfaceModel}这是类型
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
也可以定义为
const myFunc = (myData:dataModel) => (
// myData.data is used here
)
var = ({ data }: { data: interfaceModel }) => (
// data is used here
)
首先{ data }
是一个解构属性。您可以这样编写相同的函数:
var = (props: { data: interfaceModel }) => (
props.data // valid
)
第二个{data: interfaceModel}
只是类型的文字表示。
你可以这样重写:
interface Data {
data: interfaceModel
}
var = (props: Data) => (
props.data // valid
)