首页 > 解决方案 > 如何在打字稿中具有多种值类型的类上设置索引签名?

问题描述

在打字稿中,如果我有

interface A {
    foo: number;
    bar: string;
    [state: string]: number
}

但这仅允许支持道具 foo,而不是 bar。我怎样才能解决这个问题?

标签: typescript

解决方案


允许值是任何东西:

interface A {
    foo: number;
    bar: string;
    [state: string]: any
}

允许数字或字符串:

interface A {
    foo: number;
    bar: string;
    [state: string]: number | string
}

允许数字或特定字符串:

interface A {
    foo: number;
    bar: string;
    [state: string]: number | "foo" | "bar"
}

推荐阅读