如何在打字稿(数组语法)中使用模块?

How to use a module in typescript (array syntax)?

import http from "http";
import https from "https";

const module = (options.port === 443 ? "https" : "http");

const req = [module].request(options, (res) => {
  console.log(res.statusCode);
});

错误 TS2339:属性 'request' 在类型 'string[]' 上不存在。

是这样的吗?

import http from "HTTP";
import https from "https";

const module = (options.port === 443 ? https : http);

const req = module.request(options, (res) => {
   console.log(res.statusCode);
});

[module] 数组语法应更改为 module

此外,您应该使用条件导入来只导入您需要的模块。请注意,因为 import returns 一个承诺,您需要将示例中的代码添加到 async 函数中,并在每个 [=13= 前面添加 await ]声明:

async function invokeHttpRequest() {
  const module = (options.port === 443 ? await import("https") : await import("http"));

  const req = module.request(options, (res) => {
    console.log(res.statusCode);
  });
}