【发布时间】:2020-05-07 19:31:15
【问题描述】:
我正在尝试将一些数据从一个组件发送到另一个组件,但我遇到了一些类型问题。 这是我的代码:
const someData: object = {
param1: 'param1',
param2: 'param2',
array: [{},{}]
}
this.$router.push({ name: 'SomePage', params: { someData } })
我是这样获取数据的:
get param1 (): string {
return this.$route.params.someData['param1']
}
get param2 (): string {
return this.$route.params.someData['param2']
}
get array (): Array<object> {
return this.$route.params.someData['array']
}
还有来自控制台的错误:
Argument of type '{ name: string; params: { someData: object; }; }' is not assignable to parameter of type 'RawLocation'.
Type '{ name: string; params: { someData: object; }; }' is not assignable to type 'Location'.
Types of property 'params' are incompatible.
Type '{ someData: object; }' is not assignable to type 'Dictionary<string>'.
Property 'someData' is incompatible with index signature.
Type 'object' is not assignable to type 'string'.
仅当我将类型 any 输入到 someData 时它才有效,但我不会不使用它。
我怎么解决这个问题?这是什么'Location' 和'RawLocation' 类型?
【问题讨论】:
-
我遇到了同样的问题。 Here 是与此相关的 GitHub 问题。有一个回复说“目前,使用 always 字符串是正确的方法,打字很好”。
-
关于你,@MagnusTeekivi,请检查答案
标签: typescript parameters vue-router