微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Typescript无法识别typescript .d.ts文件,但vsc

如何解决Typescript无法识别typescript .d.ts文件,但vsc

更新:

它不是打字稿,但ts节点是“问题”

我对自己说,所以如果您仍然对“问题”感兴趣-请继续阅读:)

很抱歉造成混乱


也许我对index.d.ts文件一个完全错误的想法..但是我的想法是,我可以在其中声明类型,然后对它们进行“全局定义”,所以我不必在任何地方都重新声明它们使用它们(文件a.ts和b.ts)

结构:

root
  src
    a.ts
    b.ts
  node_modules
  tsconfig.json
  index.d.ts
  package.json

例如,我有一个index.d.ts文件

type XYZType = { test: string }

在我的./src/a.ts中,我拥有:

const x: XYZType = { test: 'hello' }
console.log(x)

在我的./src/b.ts中,我拥有:

const x: XYZType = { test: 'world' }
console.log(x)

但是vsc(Visual Studio代码不是抱怨缺少XYZType类型。但是当我尝试让打字稿进行编译时,它确实...:

error TS2304: Cannot find name 'XYZType'.

并指向文件a.ts和b.ts

所以..很明显..看来我做错了..

我遵循了升级link

中的小例子

所以我的 tsconfig.json 看起来像

{
  "compilerOptions": {
    "module": "commonjs","esModuleInterop": true,"allowSyntheticDefaultImports": true,"target": "es6","noImplicitAny": true,"moduleResolution": "node","sourceMap": true,"outDir": "dist","baseUrl": ".","paths": {
      "*": ["node_modules/*","src/types/*"]
    }
  },"include": ["src/**/*"]
}

我正在使用:

    "ts-node": "^9.0.0","typescript": "^4.0.3"

我发现很多具有相同标题的堆栈溢出请求..但是内容完全不同(自己的程序包声明?),所以这就是为什么让我感到困惑,并且我觉得我所寻找的方法完全不正确>

希望任何人都可以帮助并解释出什么问题了:/

提前感谢:)

解决方法

确定-不是打字稿,而是 ts-node 问题

在示例链接中,package.json脚本“ dev”的设置类似于

"scripts": { 
  "dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts",} 

但必须是:

"scripts": { 
  "dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' --files src/index.ts",} 

(必须添加“ -文件”)

很抱歉给您带来混乱,但希望它能帮助遇到同样问题的人:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。