在TypeScript中,如何指定对象中值的类型?

时间:2017-11-05 08:58:10

标签: typescript

例如,假设我有:

export function trade(positions: object) {
  ...
}

但不是仅指定'位置'是一个对象,我想指定它是一个值必须是字符串的对象。

这是什么语法?

编辑:

为了收紧这个例子,假设我只想要键和值都是字符串。有没有语法?

1 个答案:

答案 0 :(得分:2)

如果要共享对象的宽度与“具有字符串键和字符串值”一样宽,则可以使用索引类型:

export function trade(positions: {[key: string]: string;}) {
    // ...
}

如果你想使它更具体,可能是时候创建一个界面 - 即使一切都是可选的 - 因为它会在创建一个位置对象时为你提供更多的设计时帮助。

interface Positions {
    x?: string;
    y?: string;
    z?: string;
    t?: string;
}

这不会强制任何项目存在,但您将获得良好的自动完成。如果需要成员,则可以将它们设为非可选项。