对象可能未定义' - 包含未定义检查的过滤器之后

时间:2018-02-09 12:19:35

标签: typescript

我正在对这样的数组进行操作:

.filter(key => actions && actions[key])
.forEach(key => actions[key](event, dispatch));

但我在forEach actions上发现了TypeScript错误:Object is possibly 'undefined'

然而,它不能'undefined',因为它会针对那些 <{1}}的条目进行过滤。

1 个答案:

答案 0 :(得分:8)

我认为TypeScript编译器不够智能,无法实现import spotipy import spotipy.util as util cid ="xx" secret = "xx" username = "xx" scope = 'user-library-read playlist-read-private' token = util.prompt_for_user_token(username,scope,client_id=cid,client_secret=secret,redirect_uri='http://localhost:8888/callback/') if token: sp = spotipy.Spotify(auth=token) else: print("Can't get token for", username) cache_token = token.get_access_token() sp = spotipy.Spotify(cache_token) currentfaves = sp.current_user_top_tracks(limit=20, offset=0, time_range='medium_term') print(currentfaves) 方法已从数组中删除所有filter条目。在这种情况下,您可以通过告诉它使用非空断言运算符undefined定义actions[key]来帮助编译器,如本答案中所述:

https://stackoverflow.com/a/40350534/1063392

!