有人可以帮我理解以下类型声明的含义...
type PoorMansUnknown = {} | null | undefined;
这是一个TypeScript声明,我在history包的上下文中遇到了它。
我已经四处搜寻以尝试自己理解它,但是鉴于TypeScript我还很陌生,它让我有些困惑。我发现了以下信息:
我的假设是在这一点上,此声明的作者希望它是一种表达方式……在运行时,该对象可以是空对象,也可以是null或未定义。
[更多情况下,这种类型在我的雷达上出现的方式在包装react-router-dom(typedef here)之内。具体来说,我去使用了组件Redirect及其属性to: object,因为我想知道该组件我已经路由到了我之前所在的位置
例如
<Redirect to={{
pathname: "/login",
state: { from: "current-path }
}} />
反应路由器的Doco说...
状态对象可以通过重定向到组件中的this.props.location.state访问。然后,可以通过路径名'/ login']指向的Login组件中的this.props.location.state.referrer访问此新的引荐来源网址关键字(不是特殊名称)。
所以,我这样访问props.location.state ...
const { from } = location.state || { from: { path: '/' } }
我得到一个错误
Property 'from' does not exist on type '{} | { from: { path: string; }; }'.
我从LocationState开始通过typedef链进行跟踪,一直到PoorMansUnknown的声明
这就是我开始困惑的地方。这是什么类型?我应该如何处理?
我发现了与之相关的内容here,表示将其强制转换为any
。因此,我做到了:
const { from } = location.state as any || { from: { path: '/' } }
但是我不确定。它确实有效,但这只是解决方法吗?
长话短说,您以前遇到过类似的东西吗?
type PoorMansUnknown = {} | null | undefined;
如果是的话,您认为这意味着什么,以及如何处理使用它的组件?
有人可以帮我理解以下类型声明的含义吗……type PoorMansUnknown = {} |空|未定义这是一个TypeScript声明,我在...
PoorMansUnknown
应该等效于unknown
类型。 PoorMansUnknown
不可用时,我们使用unknown
,即因为我们必须支持不支持unknown
类型的较旧版本的TypeScript。