在状态转换开始之前,我需要检查目标状态是否处于某个父状态。 MatchCriteria看起来像这样:
this.transition.onStart({
to: function(state) {
return state.includes.parentstate;
}
},() => {...
但我收到错误提示Property 'includes' does not exist on type 'StateDeclaration'.
如果我console.log(state.includes)
确实存在。有什么想法吗?
注意:该项目使用Angular 4和UI-Router。
答案 0 :(得分:0)
这是@uirouter/core
中的错误。提供给回调的对象是StateObject
(通常被认为是内部对象)。输入说明它是StateDeclaration
,它是您用来注册州的对象。
要解决此错误,请将函数参数声明为any
this.transition.onStart({
to: function(state: any) {
return state.includes.parentstate;
}
},() => {...
出于向后兼容的原因,我认为ui-router的下一个版本只会更新打字以获取StateObject