如果动态类属性由运算符访问,则有一种方法可以声明其类型,[]
如下例所示:
class Foo {
[key: string]: number;
}
let a = new Foo();
let b = a['bar']; //Here, the compiler knows that b is a number
但是有没有办法在没有[]
运算符的情况下声明相同的东西?一种写法:
let a = new Foo();
let b = a.someProperty;
并让 TypeScript 知道它someProperty
的类型number
,因为我们对它说:所有未知属性Foo
都是类型 number。