属性,在流动方面的键值唯一的类型

问题描述:

看这个接口界面没有发现:属性,在流动方面的键值唯一的类型

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只是想验证它的键值类型。

我该如何解决这个问题?任何建议将非常感激。

您已经定义IParams作为一种通用的字典对象,你就需要讲清楚流程里,您希望使用它像一本字典,做

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

确定,然后是没有[]访问器就没有办法访问?如果我想使用[]存取器,但是也限制对象值与指定的数据类型? – modernator

+0

如果您有特定的关键字,则可以将'name:string,'添加到该对象。 – loganfsmyth

+0

如果名字未定,该怎么办? – modernator