以下代码段在第4行:
中显示打字稿错误import {Message} from './class/message';
function sendPayload(payload : Object) : any{
let message = new Message(payload);
console.log(message); // LINE 4
}
错误说:
[ts] Cannot find name 'console'.
这可能是什么原因?为什么找不到对象console
?
答案 0 :(得分:28)
您必须安装@types/node
以获取节点类型,您可以通过执行以下命令来实现此目的,
npm install @types/node
希望这有帮助!
答案 1 :(得分:22)
添加" dom"在tsconfig.json中的compilerOptions的lib部分中。
示例:
{
"compilerOptions": {
"rootDir": "src",
"outDir": "bin",
"module": "commonjs",
"noImplicitAny": false,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true,
"target": "es5",
"lib": [
"es6",
"dom" <------- Add this "dom" here
],
"types": [
"reflect-metadata"
],
"moduleResolution": "node",
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}
答案 2 :(得分:2)
您可以运行 npm install @types/node -D
,然后您还需要将 types:[ 'node']
添加到您的 tsconfig.json
中。
package.json
"devDependencies": {
"@types/node": "^15.0.3"
}
tsconfig.json
{
"compilerOptions": {
"composite": true,
"outDir": "./dist",
"rootDir": ".",
"declaration": true,
"noImplicitAny": true,
"esModuleInterop": true,
"module": "commonjs",
"target": "es6",
"types": [
"node"
],
"lib": [
"es6"
]
},
"exclude": [
"node_modules",
"dist"
]
}
答案 3 :(得分:1)
让console.log
工作的方式更简单但更简单:代替console.log(message)
写eval('console').log(message)
。
答案 4 :(得分:1)
您还可以使用与@tBlabs命令行中的答案相同的值,并且不需要在打字稿旁边安装任何东西:
tsc test.ts --lib esnext,dom
您可以用逗号分隔值,并且不需要esnext才能使console.log正常工作。
答案 5 :(得分:0)
我在节点终端上遇到了同样的问题。在$(".ItemQtd").each(function() {
if($(this).val() && $(this).next(".ItemEmb").val()){
var number = parseInt( $(this).val() );
var package = parseInt( $(this).next(".ItemEmb").val() );
if (number % package === 0) {
alert(`${number} is multiple of ${package}.`);
} else {
alert(`${number} is not multiple of ${package}.`);
}
}
的{{1}}字段中添加node
解决了我的问题
答案 6 :(得分:0)
确认您没有从任何内容中导入console
。喜欢:
import { console } from 'console'; // Confirm you haven't a statement like this.