次のスニペットは、LINE 4でのTypeScriptエラーを示しています。
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
が見つからないのはなぜですか?
ノードのタイプを取得するには@types/node
をインストールする必要があります。以下のコマンドを実行することでそれを達成できます。
npm install @types/node --save-dev
お役に立てれば!
Tsconfig.jsonのcompilerOptionsのlibセクションに「dom」を追加します。
例:
{
"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
}
}
コマンドラインから@tBlabs answerと同じ値を使用することもできます。TypeScriptの横に何かをインストールする必要はありません。
tsc test.ts --lib esnext,dom
値をコンマで区切ります。console.logが機能するためにesnextは必要ありません。
_console.log
_ workを取得するための、より単純ですがハックな方法があります:console.log(message)
の代わりにeval('console').log(message)
を書き込みます。