gpt4 book ai didi

javascript - 在 Node 项目中混合使用 javascript 和 typescript 有问题吗?

转载 作者:行者123 更新时间:2023-12-05 03:31:58 25 4
gpt4 key购买 nike

我对 node.js 和 typescript 还很陌生。我正在尝试通过从 python 移植现有应用程序来学习。我在意想不到的地方遇到语法错误。

我有一个类是项目的主力。它位于名为 myClass.ts

的文件中
myProject
└── js
├── commands
│   └── rules.js
├── myClass.ts
└── main.js

rules.js 包含 myClass 作为:

try {
const {myClass} = require("../myClass.ts")
} catch(e) {
console.log(e)
}

我正在使用 PyCharm,可以在 catch block 中放置一个断点。错误指向类中的构造函数。错误是:

/home/me/PycharmProjects/myProject/js/myClass.ts:44
rule_type: string,
^

SyntaxError: Unexpected token ':'
at Object.compileFunction (node:vm:352:18)
at wrapSafe (node:internal/modules/cjs/loader:1031:15)
at Module._compile (node:internal/modules/cjs/loader:1065:27)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/me/PycharmProjects/myProject/js/commands/rules.js:4:19)
at Module._compile (node:internal/modules/cjs/loader:1101:14)

myClass 太大,放不下。它开始:

const {randomInt} = require('crypto')

class myClass {
constructor(
rule_type: string,
display_type: string,
range_min: number = 1,
range_max: number = 10000,
display_mapping: {} = undefined,
value_adjustments: {} = undefined,
) {
this.rule_type = die_type
this.display_type = display_type
this.range_min = Math.trunc(range_min)
this.range_max = Math.trunc(range_max)
this.display_mapping = display_mapping
this.value_adjustments = value_adjustments
}

...//a bunch of methods, etc
}

exports.myClass = myClass;

如果我去掉 : string 类型提示,那么错误就会落到下一个类型提示上。以这种方式混合 javascript 和 typescript 有问题吗?

为什么我要混用 js 和 ts?我找到了一个示例 Node 项目,它似乎是我想做的事情的合理起点。我认为在这门课上尝试 typescript 可能是一个很好的练习。

** 编辑 **

感谢大家。很多东西要学...

最佳答案

我不建议在开始时将 .ts 文件和 .js 文件混合在同一个项目中。由于 TypeScript 是 JavaScript 的超集,因此将每个 .js 文件更改为以 .ts 结尾应该不会破坏任何东西。然后您可以使用 tsc 将所有内容编译为原生 JavaScript。

确保在您的 tsconfig 文件中启用 allowJs

关于javascript - 在 Node 项目中混合使用 javascript 和 typescript 有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70537367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com