这是与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' 类型。尝试
的声明(.d.ts)文件npm install @types/dyo
(如果存在)或添加新的 包含declare module 'dyo';
我包括如下模块:
import { h, render } from 'dyo'
import * as _rng from 'random-seed'
第二个模块也不起作用。
先前的答案建议包含files
属性,而另一个问题据说包含typeRoots
属性,但两个设置似乎都不起作用。
很抱歉向我的打字稿问题发送垃圾邮件。
答案 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
。