我想导入一个在Typescript中接受参数的模块。 我用javascript编写了这个:
const cors = require('cors')({origin: true}); // JS
如何在Typescript中编写相同的表达式?
答案 0 :(得分:2)
使用单个导入语句无法执行此操作。
require
语句在做什么?如果您分解require
语句,可以更好地理解这一点。
当你写const cors = require('cors')({origin: true});
时,你实际做的是:
const corsPackage = require('cors');
const cors = corsPackage({origin: true});
请注意,您只是导入包,然后初始化它。
在ES6 / TypeScript中重写此方法的正确方法如下:
首先导入所需的包:
import cors from 'cors';
现在,您可以初始化cors
内联,或将其分配给变量:
// Assigning the initialized `cors` package to a variable
const allowCors = cors({origin: true});
// OR, initialize it as the point of usage. For example, with express:
router.use(cors(options));
您没有看到此方法使用ES6 cors
语句在其文档中导入import
包的原因是因为该包旨在与后端的Node一起使用;而不是在浏览器中。
在发布Node v10.0 LTS之前,您需要使用--experimental-modules
标志来使用此功能。
您的问题是指使用ES6
import
声明;这不是TypeScript specfic,而是由于TypeScripts转换为与浏览器兼容的代码而继承的功能。