2014-06-06 43 views
0

如何使用相同的參數調用super構造函數,如當前的構造函數調用?呼叫super()with ... args

class B { 
    constructor(...args) { 
    } 
} 

class C extends B { 
    constructor(...args) { 
     // Here is an compile error. 
     super(...args); 
    } 
} 

回答

1

不幸的是,TypeScript編譯器本身不接受這個。

class B { 
    constructor(...args: string[]); 
    constructor(argsArray: string[]); 
    constructor(...args: any[]) { 
     if(args && args.length === 1 && args[0] instanceof Array) { 
      // Use args[0] as string[] 
     } else { 
      // Use args as string[] 
     } 
    } 
} 

class C extends B { 
    constructor(...args: string[]) { 
     // OK 
     super(args); 
    } 
} 
+0

謝謝你,讓基類的構造函數接受一個數組參數數組你可以重構它一下。好答案。 –