【问题标题】:trying to use typescript library into javascript express app试图在 javascript express 应用程序中使用 typescript 库
【发布时间】:2020-02-05 12:14:58
【问题描述】:

我正在尝试将 this 之类的 typescript 库用于现有的 express nodejs 应用程序。但它不工作。当我导入库函数时,它会给出错误,例如无法读取未定义的属性“构造函数”。

我也在将 ts 文件编译成 js 文件。有没有其他方法可以将打字稿用于现有的节点 js 应用程序?

这里是错误堆栈

"stack": "TypeError: Cannot read property 'constructor' of undefined\n    at MetadataStorage.getAncestors (/Users/saurabhkumar/platform/rest-api-service/node_modules/class-transformer/metadata/MetadataStorage.js:199:73)\n    at MetadataStorage.getMetadata (/Users/saurabhkumar/platform/rest-api-service/node_modules/class-transformer/metadata/MetadataStorage.js:146:36)\n    at MetadataStorage.getExposedMetadatas (/Users/saurabhkumar/platform/rest-api-service/node_modules/class-transformer/metadata/MetadataStorage.js:91:21)\n    at MetadataStorage.getExposedProperties (/Users/saurabhkumar/platform/rest-api-service/node_modules/class-transformer/metadata/MetadataStorage.js:97:21)\n    at TransformOperationExecutor.getKeys (/Users/saurabhkumar/platform/rest-api-service/node_modules/class-transformer/TransformOperationExecutor.js:328:70)\n    at TransformOperationExecutor.transform (/Users/saurabhkumar/platform/rest-api-service/node_modules/class-transformer/TransformOperationExecutor.js:110:29)\n    at ClassTransformer.plainToClass (/Users/saurabhkumar/platform/rest-api-service/node_modules/class-transformer/ClassTransformer.js:17:25)\n    at plainToClass (/Users/saurabhkumar/platform/rest-api-service/node_modules/class-transformer/index.js:20:29)\n    at Object.<anonymous> (/Users/saurabhkumar/platform/rest-api-service/build/src/api/controllers/source.controller.js:67:22)\n    at Generator.next (<anonymous>)\n    at /Users/saurabhkumar/platform/rest-api-service/build/src/api/controllers/source.controller.js:7:71\n    at new Promise (/Users/saurabhkumar/platform/rest-api-service/node_modules/es6-shim/es6-shim.js:2393:11)\n    at __awaiter (/Users/saurabhkumar/platform/rest-api-service/build/src/api/controllers/source.controller.js:3:12)\n    at exports.create (/Users/saurabhkumar/platform/rest-api-service/build/src/api/controllers/source.controller.js:58:38)\n    at Layer.handle [as handle_request] (/Users/saurabhkumar/platform/rest-api-service/node_modules/express/lib/router/layer.js:95:5)\n    at next (/Users/saurabhkumar/platform/rest-api-service/node_modules/express/lib/router/route.js:137:13)\n    at /Users/saurabhkumar/platform/rest-api-service/build/src/api/controllers/auth.controller.js:12:13\n    at Layer.handle [as handle_request] (/Users/saurabhkumar/platform/rest-api-service/node_modules/express/lib/router/layer.js:95:5)\n    at next (/Users/saurabhkumar/platform/rest-api-service/node_modules/express/lib/router/route.js:137:13)\n    at Route.dispatch (/Users/saurabhkumar/platform/rest-api-service/node_modules/express/lib/router/route.js:112:3)\n    at Layer.handle [as handle_request] (/Users/saurabhkumar/platform/rest-api-service/node_modules/express/lib/router/layer.js:95:5)\n    at /Users/saurabhkumar/platform/rest-api-service/node_modules/express/lib/router/index.js:281:22"

【问题讨论】:

  • 如果真的有新线,而不是一条大线,那会很有帮助...
  • 如果您想在您的 express 应用上使用 typescript,请查看https://www.npmjs.com/package/ts-node-dev

标签: javascript node.js typescript express


【解决方案1】:

如果你只是想要从这里开始的打字稿,但不关心已经写好的 js 文件,你可以把它保留为 js 文件...

确保您的 tsconfig 配置为 allowJs: true 或仅使用此选项运行 tsc。

查看allowJs选项,首先是编译器选项:https://www.typescriptlang.org/docs/handbook/compiler-options.html#compiler-options

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 2019-04-19
    • 2020-03-31
    • 2020-01-10
    • 1970-01-01
    • 2021-09-02
    • 2013-01-23
    • 1970-01-01
    相关资源
    最近更新 更多