在angular中创建javascript对象时出错

在angular中创建javascript对象时出错,javascript,angular,youtube-api,youtube-data-api,Javascript,Angular,Youtube Api,Youtube Data Api,我试图在Angular 9项目中使用javascript代码cors_upload.js将视频上传到youtube。但是,我得到一个错误: src_assets_js_cors_upload_js__WEBPACK_IMPORTED_MODULE_1__.MediaUploader is not a constructor. 以下是我已经做过的事情: 我已经创建了一个项目并获得了API密钥 我已经申请了youtube上传权限,用户已经批准了 在src/assets/js文件夹中下载并包含co

我试图在Angular 9项目中使用javascript代码cors_upload.js将视频上传到youtube。但是,我得到一个错误:

src_assets_js_cors_upload_js__WEBPACK_IMPORTED_MODULE_1__.MediaUploader is not a constructor.
以下是我已经做过的事情:

  • 我已经创建了一个项目并获得了API密钥
  • 我已经申请了youtube上传权限,用户已经批准了
  • 在src/assets/js文件夹中下载并包含cors_upload.js文件
  • 在angular.json中包含CORS上载脚本,如下所示
    "scripts": [
      "src/assets/js/cors_upload.js"
    ]
    
  • 在代码中,我将cors_upload.js中的函数作为
  • 下面是我尝试创建MediaUploader对象的代码:
    var uploader=new ytapi.mediawloader({
    baseUrl:'https://www.googleapis.com/upload/youtube/v3/videos',
    文件:uFile,
    令牌:令牌,
    元数据:元数据,
    参数:{
    部分:Object.keys(元数据).join(“,”)
    }})
    
在cors_upload.js中,MediaUploader被声明为构造函数:

/**
 * ...
 * @constructor
 * @param {object} options Hash of options
 * @param {string} options.token Access token
 * @param {blob} options.file Blob-like item to upload
 * @param {string} [options.fileId] ID of file if replacing
 * @param {object} [options.params] Additional query parameters
 * ...
 */
var MediaUploader = function (options) { 

... 

}

我发现了问题。我试图从一个服务创建javascript对象。那是行不通的。我将创建移动到组件。现在,我可以创建javascript对象了

在声明组件之前,我将MediaUploader声明为一个类型

declare var MediaUploader any
然后在我的代码中,我可以创建对象:

var uploader = new MediaUploader(...)
uploader.upload()

我仍然想知道如何从服务创建Javascript对象。可能吗?若否,原因为何?现在,在我的代码中,我可以继续。

即使它被注释为构造函数,它仍然是一个函数,您是否在不使用“new”的情况下尝试过这个方法?我需要返回一个对象,以便我可以调用其他方法。例如,具有构造函数的函数获取有关要上载的文件的信息,但是,稍后,我需要为要上载的文件调用send方法。请注意,在另一个问题的实际答案范围内提问不会提供新问题所需的可见性。只需创建一个新问题,为其提供完整和相关的上下文(从而使其自包含),并最终将其与初始问题及其相应答案联系起来。