我将引用哈姆雷特·DRC(来自微软团队)的话,他很好地解释了规则本身:
在模型规则之外设置无主干的要点是
确保不会调用
编译器无法对强制执行正确性。例如,编译器将
如果你键入route,不要抱怨。参数。获取('id'),
路线参数。获取('ID'),路由。参数。获取('Id'),但只能获取其中一个
调用实际上会在运行时工作。设计建议是
在RouteParams上定义静态类型的“getId():number”方法
对象,以便编译器可以强制执行这些调用。因此,在我看来
规则实际上在您的代码中发现了一个您应该修复的问题(但是
见我的第二点:))
资料来源:
https://github.com/Microsoft/tslint-microsoft-contrib/issues/123
在这种特定情况下,可以这样扩展Redis类:
export class RedisWrapper extends Redis {
public async getLocations(): Promise<ILocation[]> {
const response: string = await this.get('locations');
if (response == null || response.length === 0) { return []; }
return <ILocation[]>JSON.parse(response);
}
}