例如,假设我有:
export function trade(positions: object) {
...
}
但不是仅指定'位置'是一个对象,我想指定它是一个值必须是字符串的对象。
这是什么语法?
编辑:
为了收紧这个例子,假设我只想要键和值都是字符串。有没有语法?
答案 0 :(得分:2)
如果要共享对象的宽度与“具有字符串键和字符串值”一样宽,则可以使用索引类型:
export function trade(positions: {[key: string]: string;}) {
// ...
}
如果你想使它更具体,可能是时候创建一个界面 - 即使一切都是可选的 - 因为它会在创建一个位置对象时为你提供更多的设计时帮助。
interface Positions {
x?: string;
y?: string;
z?: string;
t?: string;
}
这不会强制任何项目存在,但您将获得良好的自动完成。如果需要成员,则可以将它们设为非可选项。