2016-10-29 6 views
0

Ich möchte ein Array-ähnliche Klasse erstellenWie definiert dynamische Eigenschaft in Typoskript

class Demo { 
    constructor() { 
    [1, 2, 3, 4, 5].forEach((v, i)=> this[i] = v); 
    } 
} 

let demo = new Demo(); 

console.log(demo); // Demo {0: 1, 1: 2, 2: 3, 3: 4, 4: 5} 

Aber wie kann ich wie folgt definiert in Typoskript

Kann sie nicht

in ts
typescript error: 

Property '0' does not exist on type 'Demo'. (2339) 
zugreifen
+0

Versuchen Demo von Array vererben –

+1

Sie Index Signaturtyp definieren: '[key: Nummer]: Zahl;' –

Antwort

0

können Sie die Array Objekt erweitern:

class Demo extends Array<number> { 
    constructor() { 
     super(); 

     [1, 2, 3, 4, 5].forEach(v => this.push(v)) 
    } 
} 

let a = new Demo(); 
console.log(a[0]); // 1 
a.forEach(item => console.log(item)); 

(code in playground)

Verwandte Themen