web-dev-qa-db-ja.com

「コンソール」という名前が見つかりません。この理由は何でしょうか?

次のスニペットは、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が見つからないのはなぜですか?

18
helloJSON

ノードのタイプを取得するには@types/nodeをインストールする必要があります。以下のコマンドを実行することでそれを達成できます。

npm install @types/node --save-dev

お役に立てれば!

36
David R

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
    }
}
25
tBlabs

コマンドラインから@tBlabs answerと同じ値を使用することもできます。TypeScriptの横に何かをインストールする必要はありません。

tsc test.ts --lib esnext,dom

値をコンマで区切ります。console.logが機能するためにesnextは必要ありません。

1
jcubic

_console.log_ workを取得するための、より単純ですがハックな方法があります:console.log(message)の代わりにeval('console').log(message)を書き込みます。

1
Yevhen Pavliuk