Javascript typescript(错误TS2322):键入';{type:ErrorPageType;}';不可分配给类型';ErrorPageType.SIGNUP';
TS新手,我正在尝试创建一个类型,该类型可以作为道具从另一个组件传递到这个组件,如:Javascript typescript(错误TS2322):键入';{type:ErrorPageType;}';不可分配给类型';ErrorPageType.SIGNUP';,javascript,typescript,Javascript,Typescript,TS新手,我正在尝试创建一个类型,该类型可以作为道具从另一个组件传递到这个组件,如:,以有条件地呈现正确的视图。这是我的密码: export enum ErrorPageType { ACCESS = "access", GENERIC = "generic", } interface ErrorProps { type?: ErrorPageType; } const getErrorType = (t
,以有条件地呈现正确的视图。这是我的密码:
export enum ErrorPageType {
ACCESS = "access",
GENERIC = "generic",
}
interface ErrorProps {
type?: ErrorPageType;
}
const getErrorType = (type?: ErrorPageType) {
switch (type) {
case ErrorPageType.ACCESS:
return <AccessErrorPage />;
case ErrorPageType.GENERIC:
return <GenericErrorPage />;
default:
return <GenericErrorPage />;
}
}
const ErrorPage = (type?: ErrorProps) => {
return getErrorType(type)
};
export default ErrorPage;
导出枚举错误页面类型{
ACCESS=“ACCESS”,
GENERIC=“GENERIC”,
}
接口错误道具{
类型?:ErrorPageType;
}
常量getErrorType=(类型?:ErrorPageType){
开关(类型){
案例ErrorPageType.ACCESS:
返回;
案例ErrorPageType.GENERIC:
返回;
违约:
返回;
}
}
常量ErrorPage=(类型?:ErrorProps)=>{
返回getErrorType(类型)
};
导出默认错误页面;
我得到了错误:
error TS2322:Type'{Type:ErrorPageType;}'不可分配给Type'(intrinsiattributes&ErrorPageType.ACCESS)|(intrinsiattributes&ErrorPageType.FSSO)|(intrinsiattributes&ErrorPageType.GENERIC)|(intrinsiattributes&ErrorPageType.SIGNUP)。类型“{Type:ErrorPageType;}”不可分配给类型“ErrorPageType.SIGNUP”。
我不确定原因。非常感谢您的帮助 您的ErrorPage
函数正在获取一个ErrorProps
类型值作为输入。您不能将其直接传递给getErrorType
函数,因为它需要ErrorPageType
类型输入
您应该这样修改:
const ErrorPage = (type?: ErrorProps) => {
return getErrorType(type?.type)
};
这使我在这一行遇到了一个新错误:
returngetErrorType(type.type)代码>我更新了答案以允许可选类型。原因是您定义的函数类似于“type?”:ErrorProps,即您的“type”所以我们必须考虑NULL类型,我也忘了我的答案。你是一个救生员!花了太多的时间把我的头撞在墙上。你能解释为什么我需要挖掘<代码>类型< /代码>并使它成为代码>类型吗?类型< /代码>?我的假设是当我通过<代码> <代码>……然后在Error Par组件(上)根据枚举中定义的内容验证它的值,但似乎在接口中定义(type?:ErrorPageType;)
实际上将obj(ErrorPageType{}
)分配给属性类型
,因此它看起来像类型:{type:ErrorPageType}
---正确吗?是的,您的理解是正确的。在接口内分配类型
定义了对象的结构,该对象的类型
属性为错误页面类型
。