2017-08-17 51 views
0

看這個接口界面沒有發現:屬性,在流動方面的鍵值唯一的類型

interface IParams { 
    [string]: number|string|Date 
}; 

我使用這個接口來驗證通過參數的對象,像這樣:

someObject.do = function(params: IParams|void): void { ... } 

它工作正常,但問題是訪問PARAM的財產:

someObject.do = function(params: IParams|void): void { 
    // property `name` (Property not found in IParams) 
    const name = params.name; 
    ... 
} 

我想使用IP沒有任何詳細信息的arams只是想驗證它的鍵值類型。

我該如何解決這個問題?任何建議將非常感激。

回答

1

您已經定義IParams作爲一種通用的字典對象,你就需要講清楚流程裏,您希望使用它像一本字典,做

const name = params['name']; 
+0

確定,然後是沒有[]訪問器就沒有辦法訪問?如果我想使用[]存取器,但是也限制對象值與指定的數據類型? – modernator

+0

如果您有特定的關鍵字,則可以將'name:string,'添加到該對象。 – loganfsmyth

+0

如果名字未定,該怎麼辦? – modernator