我正在尝试使用@types/youtube
为我的应用程序提供类型,但是TypeScript编译器没有将这些类型包括在构建中。
我安装了依赖项@types/youtube
,并从代码中引用类型,并设置了const ytPlayerState = YT.PlayerState.PLAYING
之类的变量,但是输出代码并未编译为值,而是这些常量名称。考虑到某些默认设置由于某些原因对我不起作用,因此我尝试将node_modules/@types
放入typesRoots
并将youtube
放入types
部分,并尝试使用{{ 1}}。他们俩都不为我工作。
<reference .../>
编译后的预期结果:
// options for YT player to load iframe
private playerVariables = {
enablejsapi: YT.JsApi.Enable,
version: 3,
autohide: YT.AutoHide.HideAllControls,
autoplay: YT.AutoPlay.AutoPlay,
color: 'red',
theme: 'dark',
iv_load_policy: YT.IvLoadPolicy.Hide,
modestbranding: YT.ModestBranding.Modest,
rel: YT.RelatedVideos.Hide,
showinfo: YT.ShowInfo.Hide,
cc_load_policy: YT.ClosedCaptionsLoadPolicy.UserDefault,
};
实际结果:
_this.playerVariables = {
enablejsapi: 1,
version: 3,
autohide: 1,
autoplay: 0,
color: 'red',
theme: 'dark',
iv_load_policy: 3,
modestbranding: 1,
rel: 0,
showinfo: 0,
cc_load_policy: 0,
};
答案 0 :(得分:0)
正如注释部分中提到的@ p.s.w.g一样,该行为的原因是enums
未声明为const
。将const
添加到枚举可解决此问题。
参考:https://www.typescriptlang.org/docs/handbook/enums.html#const-enums