我是nodejs的新手,作为C#/ C ++程序员,我想使用typescript来输入我的代码。
当我尝试导入/需要fs或stream等模块时,我收到此错误:
无法找到模块
(Visual Studio 2017从C:\Users\0xCDCDCDCD\AppData\Local\Microsoft\TypeScript\2.5\node_modules\@types\node\index.d.ts
内找到这些模块)
但是,如果我正在尝试使用ReadableStreamReader,它似乎能够找到它而无需导入/需要它(在C:\Program Files (x86)\Microsoft SDKs\TypeScript\2.5\lib.d.ts
中)
我发现的每篇文章都会在需要时讨论.d.ts
和npm install @types/node
的必要性。
我尝试过但它无法解决我的问题。
我也尝试添加
// <reference path="../node_modules/@types/node/index.d.ts" />
作为.ts
文件的第一行(以及绝对路径和TypeScript 2.5目录的绝对路径),但没有成功。
答案 0 :(得分:0)
好吧,好像我现在有一个我可以编译的项目。
我没有完全的答案,但是对我没有帮助的事实是我不知道我在做什么(TM)。 (我的意思是我同时学习TypeScript和NodeJS。)
我发现了:
不要相信编辑器有关错误的信息,请相信VisualStudio输出。
我有一段时间错误了(并且它也无法找到定义)但最终能够编译并运行它。后来它确实删除了错误并找到了定义(又称类型)。 也许错误保留在那里因为我错误地使用stream.Readable作为一个没有返回任何内容的方法的返回类型...
对于像我这样的其他愚蠢的人(用我自己的话来说)TypeScript有自己的语法(如导入,界面......),它将一些代码转换为javascript(并忽略其他一些)。 NodeJS然后执行javascript。
这意味着require()仍然在.ts中工作,你必须将它用于全局模块。 (比如fs和stream),这也意味着如果我使用常规的nodejs项目,我需要使用require()来导入我的ts类。
在VisualStudio中,有两种方法可以创建一个nodejs项目,一种是其他语言/ JavaScript / Node.js和其他语言/ TypeScript / Node.js。我现在使用了最后一个。我认为它唯一能添加的是能够在删除tsconfig.json文件后使用TypeScript的内置配置选项卡。
所以是的,Visual Studio似乎在后台管理ts配置而不在驱动器上生成文件
我确实尝试手动安装tsd(我之前安装了带npm的nodejs;以防万一)
npm install tsd -g
当我创建TypeScript项目时,VisualStudio找到了tsconfig.json,因为它不允许我使用嵌入式TypeScript设置选项卡。