【发布时间】:2019-04-27 05:42:52
【问题描述】:
我用 es5 表示法开发 express 应用程序,现在我需要使用接口。当我搜索它时得知 ES5 中没有接口结构,我决定用 Typescript 编写这部分。但是我不能 require() 这个 ts 文件在另一个用 ES5 符号编写的文件中。我偶尔会搜索这个问题,但我找不到任何谈论这个问题的来源。很可能我走错了路,但我不知道如何做到这一点。有没有办法同时运行 typescript 和 es5。如何实现这个问题?
感谢您的帮助!
更新
仅使用 typescript 编写的模块文件夹。
我的文件结构的一部分在这里:
/managers
/modules
/routes
app.js
package.json
tsconfig.json
这里是 tsconfig.json 文件内容:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./modules",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"target": "es5",
"module": "commonjs",
"allowJs": true
}
}
package.json 文件是
"scripts": {
"start": "nodemon --legacy-watch ./bin/www"
},
"dependencies": {
"async": "^2.6.1",
"concurrently": "^4.1.0",
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"express": "~4.16.0",
"http-errors": "~1.6.2",
"jade": "~1.11.0",
"jsonwebtoken": "^8.3.0",
"mongoose": "^5.2.12",
"morgan": "~1.9.0",
"nodemon": "^1.18.4",
"typescript": "^1.8.10",
}
【问题讨论】:
-
“现在我需要使用接口” 为什么?如果您还没有使用 TypeScript,那么接口的整个概念(作为代码构造而不是约定+文档)是不相关的。但是,是的,您当然可以在同一个项目中使用 JavaScript 和 TypeScript。当然,你不能在 JavaScript 代码中使用特定于 TypeScript 的东西(如接口)。
-
感谢您的快速回复@T.J.Crowder。实际上我尝试在项目中应用一些模式(这就是我尝试使用接口的原因),我想做的是在 typescript 类中调用一种方法。
标签: node.js typescript express babeljs ecmascript-5