如何使用从外部.d.ts文件导出的类型?

时间:2019-04-16 15:14:01

标签: typescript typescript-typings

我正在尝试使用@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,
        };

1 个答案:

答案 0 :(得分:0)

正如注释部分中提到的@ p.s.w.g一样,该行为的原因是enums未声明为const。将const添加到枚举可解决此问题。

参考:https://www.typescriptlang.org/docs/handbook/enums.html#const-enums