- 在使用
ts-node
运行ts
文件时出现问题 test.ts
文件:const arr: Object[] = [{}, 1]; const arr1: Array<Object> = [{}, 1, 2]; console.log(arr, arr1);
- 执行:
ts-node ./test.ts
- 报错:
error TS2584: Cannot find name 'console'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'. 2 console.log(arr, arr1); ~~~~~~~ at createTSError (C:\Users\ASUS\Desktop\crm\ydemo\node_modules\ts-node\src\index.ts:820:12) at reportTSError (C:\Users\ASUS\Desktop\crm\ydemo\node_modules\ts-node\src\index.ts:824:19) at getOutput (C:\Users\ASUS\Desktop\crm\ydemo\node_modules\ts-node\src\index.ts:1014:36) at Object.compile (C:\Users\ASUS\Desktop\crm\ydemo\node_modules\ts-node\src\index.ts:1322:43) at Module.m._compile (C:\Users\ASUS\Desktop\crm\ydemo\node_modules\ts-node\src\index.ts:1454:30) at Module._extensions..js (internal/modules/cjs/loader.js:1157:10) at Object.require.extensions.<computed> [as .ts] (C:\Users\ASUS\Desktop\crm\ydemo\node_modules\ts-node\src\index.ts:1458:12)
- 原因:
console
不属于ECMAScript
标准。DOM里面的console
是浏览器环境下的(是window
对象里面的),属于浏览器BOM API
,Node
里面的console
是NodeJS
里面的,由NodeJS
自己定义的API,两者虽然由同样的功能,但是并不是同一个东西; - 解决:
- 安装插件:
npm i -D tslib @types/node
- 该命令是安装
TypScript
助手的运行时库,包含所有TypeScript
辅助函数;
- 安装插件: