variable method clases class typescript indexer

class - clases - typescript static method



Implementando un indexador en una clase en TypeScript (2)

Esta es una pregunta antigua, para aquellos que buscan la respuesta: ahora es posible definir una propiedad indexada como:

let lookup : {[key:string]:AnyType};

la firma de la clave debe ser una cadena o un entero, ver:

Interfaces en www.typescriptlang.org

¿Es posible actualmente implementar un indexador en una clase en TypeScript?

class MyCollection { [name: string]: MyType; }

Esto no se compila. Por supuesto, puedo especificar un indexador en una interfaz, pero necesito métodos para este tipo, así como el indexador, por lo que una interfaz no será suficiente.

Gracias.


No se puede implementar una clase con un indexador. Puede crear una interfaz, pero esa interfaz no puede ser implementada por una clase. Se puede implementar en JavaScript plano, y puede especificar funciones, así como el indexador en la interfaz:

class MyType { constructor(public someVal: string) { } } interface MyCollection { [name: string]: MyType; } var collection: MyCollection = {}; collection[''First''] = new MyType(''Val''); collection[''Second''] = new MyType(''Another''); var a = collection[''First'']; alert(a.someVal);