【问题标题】:typescript .d.ts file not recognized by typescript but vsctypescript .d.ts 文件无法被 typescript 识别,但 vsc
【发布时间】:2021-01-13 11:13:12
【问题描述】:

更新:

它不是打字稿,而是 ts-node “问题”

我回答了自己,所以如果你仍然对“问题”感兴趣 - 进一步阅读:)

抱歉给您带来了困扰


也许我对 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 Code) 没有抱怨缺少 XYZType Type.. 但是当我尝试让 typescript 编译时,它确实...:

error TS2304: Cannot find name 'XYZType'.

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

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

我按照levelup 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"

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

希望任何人都可以帮助并解释问题所在:/

提前致谢:)

【问题讨论】:

    标签: node.js typescript types definition


    【解决方案1】:

    ok wow - 这不是 typescript,而是 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", 
    } 
    

    ('--files' 必须添加)

    很抱歉造成混乱,但希望它可以帮助遇到相同问题的人:)

    【讨论】:

      猜你喜欢
      • 2021-02-28
      • 2021-03-30
      • 1970-01-01
      • 2022-11-05
      • 2018-01-12
      • 2021-04-01
      • 2020-05-28
      • 1970-01-01
      • 2020-04-30
      相关资源
      最近更新 更多