我用 TypeScript 建立了一個非常簡單的 node.js 專案。我的 package.json,您可以從中看到我安裝了哪些包(沒有ts-node),如下所示:
{
"name": "mydemo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"lint": "eslint . --fix",
"test": "echo \"Error: no test specified\" && exit 1",
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@types/node-fetch": "^2.6.1",
"@typescript-eslint/eslint-plugin": "^5.23.0",
"@typescript-eslint/parser": "^5.23.0",
"eslint": "^8.15.0",
"node-fetch": "^3.2.4",
"ts-node": "^10.7.0",
"typescript": "^4.6.4"
}
}
專案結構:

src/main.ts: _
const sayHi = () => {
console.log('HI!12345');
}
sayHi();
我的tsconfig.json:
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"outDir": "dist",
"sourceMap":true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true
}
}
通過上述設定,我可以node src/main.ts在終端上運行。每當我更新代碼時,main.ts我直接運行node src/main.ts也會顯示最新代碼的結果。
我本來可以安裝ts-node的,我試過了,它也能正常作業。但我想知道為什么沒有ts-node我的設定就可以正常作業。我的意思是我已經可以通過node命令運行 TypeScript 代碼,而無需編譯和運行 JS。
有人可以向我解釋嗎?似乎ts-node根本不需要。
uj5u.com熱心網友回復:
TypeScript 語法是 JavaScript 的超集。您的代碼不使用任何 TypeScript 特定語法(如型別宣告或型別注釋),因此它也是一個有效的 JS 檔案,node可以執行普通檔案。如果您添加一些型別注釋,您將收到以下錯誤node:
const sayHi = (n: number) => {
console.log('HI!12345');
}
sayHi(123);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/475397.html
上一篇:使用變數名訪問服務、模型、
