Javascript 如何使typescript导出向后与module.exports兼容
我有一个node.js模块,定义如下:Javascript 如何使typescript导出向后与module.exports兼容,javascript,typescript,Javascript,Typescript,我有一个node.js模块,定义如下: function sayHi(){ // do something } module.exports = sayHi; 并使用以下方式导入: const sayHi = require('./sayHi.js'); 当我切换到typescript时,我创建了sayHi.ts,如下所示: function sayHi():void { // do something } export default sayHi; 它允许我使用以下命令从其他
function sayHi(){
// do something
}
module.exports = sayHi;
并使用以下方式导入:
const sayHi = require('./sayHi.js');
当我切换到typescript时,我创建了sayHi.ts
,如下所示:
function sayHi():void {
// do something
}
export default sayHi;
它允许我使用以下命令从其他.ts
文件导入:
import sayHi from "./sayHi";
但是,旧版.js
文件需要更新为require('./sayHi.js')。默认值现在导出属性
有什么办法可以两全其美?ES6导入+ES5需要什么
tsconfig.json
---
{
"compilerOptions": {
"target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"lib": [], /* Specify library files to be included in the compilation. */
"checkJs": false, /* Report errors in .js files. */
"declaration": true, /* Generates corresponding '.d.ts' file. */
"declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
"sourceMap": false, /* Generates corresponding '.map' file. */
"outDir": ".", /* Redirect output structure to the directory. */
"rootDir": ".", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
"importHelpers": true, /* Import emit helpers from 'tslib'. */
"strict": true, /* Enable all strict type-checking options. */
"moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
"allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
}
}
我最终使用了:
function sayHi(){...}
exports = sayHi
这对从“/sayHi”
导入sayHi和const sayHi=require(“/sayHi”)
都有效。这不会直接回答您的问题,但可能有助于解决问题<代码>导出默认sayHi通常被避免,而倾向于导出函数sayHi(){}
,原因如下:这里有一个与之相关的问题