You don't ever implement it in the class definition, but only by addressing instance[index]
, so your fooInterface
cannot be be used via implements
on a TypeScript class, but can be used to describe the expected structure of an object, e,g. var foo: fooInterface = {};
Describing an Indexable Object
A common pattern in JavaScript is to use an object (e.g. {}) as way to
map from a set of strings to a set of values. When those values are of
the same type, you can use an interface to describe that indexing into
an object always produces values of a certain type (in this case,
Widget).
interface WidgetMap {
[name: string]: Widget;
}
var map: WidgetMap = {};
map['gear'] = new GearWidget();
var w = map['gear']; // w is inferred to type Widget
Quote and Widget example taken from: http://blogs.msdn.com/b/typescript/archive/2013/01/24/interfaces-walkthrough.aspx
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…