2016-12-24 151 views
-2

聲明多個維陣列中的我的應用程序,我需要定義等的元件:錯誤在打字稿

commandsList:[RegExp, string, string]; 

但是當我試圖陣列元件推到它,如下:

public registerCommand(command:RegExp, cb:string, phrase:string):void{ 
     this.commandsList.push({ command: command, callback: cb, originalPhrase: phrase }); 
} 

我拿到類型{命令」的command:command

[TS]參數下面的錯誤:正則表達式;回調:字符串; originalPhrase:string; }'不可分配給類型爲 的參數'string |正則表達式」。對象字面量只能指定已知屬性, 和'命令'在'string |正則表達式」。 (參數) 指令:RegExp

完整的代碼在我的另一個問題here

我有什麼錯誤,以及如何解決它?

回答

0

我發現的最好的方法是使用interface像:

interface ICommand { 
    regexp: RegExp; 
    callback: Function; 
} 

然後定義該陣列爲:

let commandsList: ICommand[]; 
0

糾正我,如果我錯了,但它看起來像你試圖推動一個對象,陣列預計RegExp | string類型。

+0

它是一個'RegExp'型 –