无法扩展typescript文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法扩展typescript文件相关的知识,希望对你有一定的参考价值。

我正在创建一个拖放界面。在下降,我得到了原生的File。我需要扩展此接口并包含一些其他信息。

我的第一种方法是使用

interface AcceptedFile extends File {
   acl: Acl,
   disabled: boolean;
}

const toAcceptedFiles = (files: File[]): AcceptedFile[] => {
   return files.map(file => {
      return {
         ...file,
         acl: Acl.Public,
         disabled: false
      }
   });
}

但是,函数toAcceptedFiles的结果只包含来自previewFile密钥;所有的blob,名字等都消失了。如果我console.logfile内的toAcceptedFiles,我可以看到所有的钥匙。

有趣的是,以下界面工作正常:

interface AcceptedFile {
   file: File,
   acl: Acl,
   disabled: boolean;
}

为什么扩大File打破它?

答案

为什么第一种方法不起作用spread operator issues with property accessors (getters)

你的第二种方法更合理,因为原生api会给你一个File[],你要映射到你的类型AcceptedFile

const toAcceptedFiles = (files: File[]): AcceptedFile[] => {
   return files.map(file => {
      return {
         file: file,
         acl: Acl.Public,
         disabled: false
      }
   });
}

当从本机API调用toAcceptedFiles时,它将填充File[]而不是AcceptedFile[]

interface AcceptedFile {
   file: File;
   acl: Acl,
   disabled: boolean;
} 

以上是关于无法扩展typescript文件的主要内容,如果未能解决你的问题,请参考以下文章

无法在不提供文件扩展名的情况下导入 TypeScript 模块

无法在 TypeScript 中扩展 Express 请求

getSupportFragmentManager() 在活动扩展片段中未定义

无法在 Visual Studio 2012 中编译 TypeScript 文件

使用 Typescript 扩展快速响应对象的正确方法

typescript Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming/angular-2/