属性,在流动方面的键值唯一的类型
问题描述:
看这个接口界面没有发现:属性,在流动方面的键值唯一的类型
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'];
确定,然后是没有[]访问器就没有办法访问?如果我想使用[]存取器,但是也限制对象值与指定的数据类型? – modernator
如果您有特定的关键字,则可以将'name:string,'添加到该对象。 – loganfsmyth
如果名字未定,该怎么办? – modernator