可以使用方括号表示法访问模块 属性 但不能使用点 属性 表示法
Can access module property with square bracket notation but not with dot property notation
我正在从控制器文件中导出函数:
import adminSaveSnippet from './admin/adminSaveSnippet';
exports.saveSnippet = adminSaveSnippet;
我正在将函数导入到我的路由文件中:
import * as express from 'express';
const adminRouter = express.Router();
import * as admin from '../controllers/adminControllers';
adminRouter.put('/save/snippet', admin['saveSnippet']);
export default adminRouter;
我可以通过 admin['saveSnippet']
访问 admin
中的 saveSnippet
函数,但是当我使用点符号 admin.saveSnippet
时,我收到以下错误:
src/routes/admin.ts:5:40 - error TS2339: Property 'saveSnippet' does not exist on type 'typeof import(".../src/controllers/adminControllers")'.
我不太确定发生了什么。我没有使用任何 irregular identifiers,我尝试了几种不同的导出函数的方法(例如 import { saveSnippet } from '../controllers/adminControllers'
),但仍然出现相同的错误。
为完整起见,这是我的 adminSaveSnippet 文件:
export default function adminSaveSnippet (_req, res) {
console.log('here');
res.send('saved').status(200);
}
这很可能只是一个 TypeScript 语法问题。
在您的 adminControllers.ts 文件中,尝试使用 export
语法,就像您在 adminSaveSnippet 文件中所做的那样,而不是 CommonJS exports
:
export {
adminSaveSnippet as saveSnippet
}
我正在从控制器文件中导出函数:
import adminSaveSnippet from './admin/adminSaveSnippet';
exports.saveSnippet = adminSaveSnippet;
我正在将函数导入到我的路由文件中:
import * as express from 'express';
const adminRouter = express.Router();
import * as admin from '../controllers/adminControllers';
adminRouter.put('/save/snippet', admin['saveSnippet']);
export default adminRouter;
我可以通过 admin['saveSnippet']
访问 admin
中的 saveSnippet
函数,但是当我使用点符号 admin.saveSnippet
时,我收到以下错误:
src/routes/admin.ts:5:40 - error TS2339: Property 'saveSnippet' does not exist on type 'typeof import(".../src/controllers/adminControllers")'.
我不太确定发生了什么。我没有使用任何 irregular identifiers,我尝试了几种不同的导出函数的方法(例如 import { saveSnippet } from '../controllers/adminControllers'
),但仍然出现相同的错误。
为完整起见,这是我的 adminSaveSnippet 文件:
export default function adminSaveSnippet (_req, res) {
console.log('here');
res.send('saved').status(200);
}
这很可能只是一个 TypeScript 语法问题。
在您的 adminControllers.ts 文件中,尝试使用 export
语法,就像您在 adminSaveSnippet 文件中所做的那样,而不是 CommonJS exports
:
export {
adminSaveSnippet as saveSnippet
}