嘿我在基于typescript中的类属性查找类中的字符串时遇到问题。
export class EventName {
public static LOGIN = "LOGIN";
public static LOGOUT = "LOGOUT";
}
我在网上查了一下,它说只是使用了eventName ['LOGIN'];
之类的东西然而,这会返回以下错误
元素隐式具有“任意”类型,因为类型“typeof EventName”没有索引签名。
然后我尝试加入 [key:string]:any; 但这仍然给我同样的错误。我想知道有人可以指点我这里的问题谢谢吗?
答案 0 :(得分:1)
如果您使用eventName['LOGIN'];
类的实例尝试示例EventName
,则会出现该错误(如果您使用的是--noImplicitAny
):
class EventName {
public static LOGIN = "LOGIN";
public static LOGOUT = "LOGOUT";
}
const eventName = new EventName();
// Element implicitly has an 'any' type because type 'EventName' has no index signature.
const logout = eventName['LOGOUT'];
这是因为属性为static
且不属于实例 - 因此您可以使用:
class EventName {
public static LOGIN = "LOGIN";
public static LOGOUT = "LOGOUT";
}
// login: string;
const login = EventName['LOGIN'];
这可能是--noImplicitAny
标志非常有用的原因的一个很好的例子。