我想初始化一个函数中的属性。我遇到以下错误。我的代码有什么问题?
输入'{ErrorMessage:string;标签:字符串;名称:字符串;文字:字串; }”不可分配给“ IUserProps”类型。 对象文字可能仅指定已知属性,并且'IUserProps'类型中不存在'ErrorMessage'。
export interface IField {
Label: string,
Name: string,
ErrorMessage: string,
Text: string
}
export interface IUserProps {
FirstName: IField,
Email:IField
}
interface IUserState {
user:{
Email:IUserProps,
FirstName: IUserProps
}
}
const setDefaultUserState :() =>IUserState= () =>({
Email: {
ErrorMessage: '',
Label:'Email',
Name:'Email',
Text: ''
},
FirstName: {
ErrorMessage: '',
Label:'Email',
Name:'Email',
Text: ''
},
})
答案 0 :(得分:0)
IUserState
,其属性user
具有这些属性。你省略了。IUserProps
和IUserState
也是相同的,但是您嵌套它们却没有逻辑意义。我删除了IUserProps
。export interface IField {
Label: string,
Name: string,
ErrorMessage: string,
Text: string
}
export interface IUserState {
user:{
Email:IField,
FirstName: IField
}
}
export var setDefaultUserState:() => IUserState = () => ({
user: {
Email: {
ErrorMessage: '',
Label:'Email',
Name:'Email',
Text: ''
},
FirstName: {
ErrorMessage: '',
Label:'Email',
Name:'Email',
Text: ''
},
}}
)