【发布时间】:2021-06-25 15:43:21
【问题描述】:
我有一个休息调用 json 响应,如下所示:
"20412": [
{
"username": "foo",
...
},
...
],
"20485": [
...
数组中的对象是User 模型。
我正在尝试为这个 json 创建一个接口,我可以在其中执行assetUsers.get("20412") 并让用户使用它。
我试过了:
export interface AssetUsers extends Map<string, User[]> {}
但是(当尝试使用类似于上面的 json 创建模拟 AssetUsers 对象时)这给了我一个“不可分配”错误,指出 AssetUsers 类型中不存在 20412。
export interface User {
username: string;
}
export interface AssetUsers extends Map<string, User[]> { }
const mockAssetUsers: AssetUsers = {
"204311":[
{
"username":"foo",
},
{
"username":"bar",
},
],
"204832":[
{
"username":"bob",
},
{
"username":"baz",
},
],
}
如何为这个 json 适当地创建模型接口?
【问题讨论】:
-
您必须知道您将映射键声明为数字,但您上面显示的示例使用字符串键代替。我知道 javascript 在这方面非常灵活,但这可能会导致问题。
-
@JuanDavid - 进行了上述更改,但结果相同
-
请考虑修改此问题中的代码以构成minimal reproducible example,将其放入像The TypeScript Playground 这样的独立IDE 时,可以清楚地说明您面临的问题。这将使那些想要帮助您的人立即着手解决问题,而无需首先重新创建它。它将使您得到的任何答案都可以针对定义明确的用例进行测试。
-
你可以看看这个:codebuckets.com/2018/06/17/…
标签: angular typescript extend