我是vscode的忠实粉丝。这是我的问题,假设我有这样的代码。
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
当我在CMD+Click
(在express
内)或require
函数上get
时,将带我进入缓存在主文件夹中的打字稿定义。当我清除缓存时,它将带我进入node_modules
内部的定义,并且缓存将重新构建。而在webstorm
中,没有typescript
缓存,这使我进入了node_modules
的定义。是否可以禁用打字稿定义并使用node_modules
定义?
如图所示,当我单击express
时,需要输入打字稿定义,而不是node_modules
。
有一个名为TypeScript and JavaScript Language Features (vscode.typescript-language-features)
的内置扩展名。禁用将起作用?我不知道,但恐怕我会失去javascript
的智识。
任何人都知道???
答案 0 :(得分:1)
缓存最有可能是由上述扩展生成的。您不应该使用它来获取Typescript打字,因为Typescript的智能感知非常容易使用。
不要忘记为每个JS软件包安装类型。
npm install @types/express -D
在Typescript中,您也应该使用import而不是require
import * as express from 'express'
答案 1 :(得分:1)
“缓存”由称为Automatic Type Acquisition的功能构建。您可以通过将VS Code的typescript.disableAutomaticTypeAcquisition
设置为true或创建一个包含jsconfig.json
的{{1}}文件来禁用它。您仍然必须手动删除以前下载的类型声明,以便链接将您带到实现JavaScript文件。有关其他一些相关信息,请参见this answer。