【发布时间】:2018-07-03 10:18:55
【问题描述】:
我正在尝试学习 typescript,但在接口方面遇到了困难,我有一个对象,我想保存一个 token 和一个 route,如下所示
const obj = {
token: 'thisismytoken',
'/path/to/somewhere': [{ ... }]
}
我遇到的问题是:如何为这个对象生成接口?
我试过了:
interface iObject {
token: string;
[key: string]: { ... }[]
}
但这会产生错误:
TS2411:“字符串”类型的属性“令牌”不可分配给字符串索引类型“{ ... }”。
当我尝试类似的事情时会发生同样的事情:
interface iRoute {
val1: number;
val2: string;
}
interface iObject extends iRoute {
token: string;
}
当我尝试类似:
interface iObject {
[key: string]: { ... }[] | string;
}
当我尝试向路由变量添加数据时出现以下错误:
TS2339:“字符串 | 类型”上不存在属性“推送” { ... }[]'。
类型“字符串”上不存在属性“推送”。
还有其他方法可以做到这一点吗?
【问题讨论】:
-
我认为这应该是一个语言特性,所以我开了一个关于它的问题github.com/microsoft/TypeScript/issues/43057
标签: typescript interface typescript-typings