如何在打字稿配置中包括缺少的类型定义文件?

时间:2019-01-19 00:56:08

标签: typescript

这是与How to allow modules that have missing .d.ts type definition?

相同的问题

添加这些文件后,VS Code停止抱怨,但是尝试使用gulp进行编译会在控制台中引发错误。

(事实上,今天我注意到VS代码停止显示大多数错误)

./src/dts/中,我有:

dyo.d.ts

declare module 'dyo';

tsconfig.json

{
  "compilerOptions": {
    "lib": ["dom", "es2016", "es2017.object"],
    "rootDir": "src",
    "target": "es5",
    "outDir": "build",
    "moduleResolution": "node",
    //"noImplicitAny": false,
    "removeComments": true,
    "typeRoots": [
      "src/dts",
      "node_modules/@types"
    ]
  },
  "exclude": [
    "node_modules"
  ],
  "files": [
    "./src/dts/dyo.d.ts",
    "./src/dts/randomseed.d.ts"
  ]
}

错误:

  

错误TS7016:找不到模块“ dyo”的声明文件。   '/mediatest/node_modules/dyo/dist/dyo.umd.js'隐含一个'any'   类型。尝试npm install @types/dyo(如果存在)或添加新的   包含declare module 'dyo';

的声明(.d.ts)文件

我包括如下模块:

import { h, render } from 'dyo'

import * as _rng from 'random-seed'

第二个模块也不起作用。

先前的答案建议包含files属性,而另一个问题据说包含typeRoots属性,但两个设置似乎都不起作用。

很抱歉向我的打字稿问题发送垃圾邮件。

1 个答案:

答案 0 :(得分:0)

我建议从types切换到typeRoots并使用include模式而不是files

{
  "compilerOptions": {
    "lib": ["dom", "es2016", "es2017.object"],
    "rootDir": "src",
    "target": "es5",
    "outDir": "build",
    "moduleResolution": "node",
    "removeComments": true,
    "types": [
      "node"
    ]
  },
  "include": [
    "**/*.ts"
  ]
}

由于您使用的是node模块分辨率,因此我也包括了node类型,如果尚未安装,请确保安装@types/node