代码之家  ›  专栏  ›  技术社区  ›  Chris

带接口的typehint类构造函数

  •  0
  • Chris  · 技术社区  · 6 年前

    interface IDownloader {
        download()
    }
    

    以及实现它的几个类:

    class DownloaderA implements IDownloader {
    ...
    }
    
    class DownloaderB implements IDownloader {
    ...
    }
    

    class DownloadWorker {
        constructor(downloader: typeof DownloaderA) {
        }
    }
    

    但我不能用同样的方式输入提示:

    class DownloadWorker {
        constructor(downloader: typeof IDownloader) {
        }
    }
    

    如何输入downloader参数以便传递DownloaderA和DownloaderB构造函数?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Titian Cernicova-Dragomir    6 年前

    可以使用构造函数签名:

    class DownloadWorker {
        constructor(downloader: new () => IDownloader) {
        }
    }
    

    new 新的 运算符创建新对象。

    new (...a:any[]) => IDownloader 允许构造函数具有任何参数。