我對 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 塊中放置一個斷點。錯誤指向類中的建構式。錯誤是:
/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?我找到了一個示例節點專案,它似乎是我想做的事情的合理起點。我想為這門課嘗試打字稿可能是一個很好的練習。
** 編輯 **
謝謝大家。很多東西要學...
uj5u.com熱心網友回復:
我不建議在開始時在同一個專案中混合.ts檔案和.js檔案。由于 TypeScript 是 JavaScript 的超集,因此將每個.js檔案更改為以結尾.ts不應破壞任何內容。然后您可以使用 tsc將所有內容編譯為原生 JavaScript。
確保allowJs在您的tsconfig檔案中啟用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/398815.html
標籤:javascript 节点.js 打字稿
上一篇:無法理解Node.js中的匯出
