L'extrait de code suivant montre une erreur TypeScript à LINE 4:
import {Message} from './class/message';
function sendPayload(payload : Object) : any{
let message = new Message(payload);
console.log(message); // LINE 4
}
L'erreur dit:
[ts] Cannot find name 'console'.
Quelle pourrait être la raison de cela? Pourquoi ne peut-il pas trouver l'objet console
?
Vous devrez installer le @types/node
pour obtenir les typages des nœuds, vous pouvez y parvenir en exécutant la commande ci-dessous,
npm install @types/node --save-dev
J'espère que cela t'aides!
Ajoutez "dom" dans votre section lib dans compilerOptions dans tsconfig.json.
Exemple:
{
"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
}
}
vous pouvez également utiliser les mêmes valeurs que dans la réponse @tBlabs à partir de la ligne de commande, et vous n'avez pas besoin d'installer quoi que ce soit à côté de TypeScript:
tsc test.ts --lib esnext,dom
vous séparez les valeurs par une virgule et vous n'avez pas besoin d'esnext pour que console.log fonctionne.
Il existe un moyen plus simple mais hacky de faire fonctionner console.log
: Au lieu de console.log(message)
write eval('console').log(message)
.