类型{[key:string]:boolean; } 意思?

时间:2017-04-13 15:41:00

标签: typescript

最近遇到这样的事情,一个函数声明:

static required(control: AbstractControl): {
        [key: string]: boolean;
    };

这个回报值是多少?具有任意数量属性的对象,其中每个属性都是布尔值并且具有名称,它看起来像是字符串?我想这更像是一个打字稿问题,但万一有人想知道我在哪里找到了它 - 它是Angular的Validators类。

1 个答案:

答案 0 :(得分:22)

这是一个键/值结构。密钥为string,值为boolean。例如:

let map : { [key: string]: boolean} = {};
map["foo"] = true;
map["bar"] = false;
map["foobar"] = "foo"; // Throws exception
map[1] = true; // Curiously doesn't throws exception
map.foo = true; // Throws exception

检查this sample on the Typescript Playground.

Indexable Types