打字稿找不到 .d.ts 文件

Posted

技术标签:

【中文标题】打字稿找不到 .d.ts 文件【英文标题】:Typescript wont find .d.ts files 【发布时间】:2019-01-02 09:30:47 【问题描述】:

目前正在处理我的一个项目,并想使用一个名为 merge-graphql-schemas 的库。由于模块没有自己的类型,我创建了一个位于 src/types/merge-graphql-schemas.d.ts 的文件

在 merge-graphql-schemas.d.ts 中我写道:

declare module "merge-graphql-schemas";

我的 TSlint 删除了文件导入中的错误:

import  mergeTypes, mergeResolvers  from "merge-graphql-schemas";

但是当我编译时我仍然得到:

Could not find a declaration file for module 'merge-graphql-schemas'
Try `npm install @types/merge-graphql-schemas` if it exists or add a new declaration (.d.ts) file containing `declare module 'merge-graphql-schemas';`

我也尝试过类似的解决方案:

declare module "*";

提前致谢

编辑: 使用它解决了我的问题

// tslint:disable-next-line
const variableName = require('merge-graphql-schemas')

如果有人能解释原因或提出不同的解决方案,我会很高兴听到它

【问题讨论】:

尝试通过 - /// <reference path="merge-graphql-schemas.d.ts"/> 导入? 你的意思是/// <reference path="path/to/my/typing/type.d.ts"/> import mergeTypes, mergeResolvers from "merge-graphql-schemas"; @IshankDubey 试试require 而不是import const mgs = require('merge-graphql-schemas') ? @eduPeeth var merge-graphql-schemas = require('merge-graphql-schemas'); 如果可行,您应该可以使用 merge-graphql-schemas 作为参考。 【参考方案1】:

试试const merge-graphql-schemas = require('merge-graphql-schemas');

在涉及到 Node.js 时,有些功能与 ES6 不完全兼容。例如,如果您尝试使用上述导入样式使用文件系统fs,它将无法正常工作,即使 TS Lint 会建议您这样做。

【讨论】:

以上是关于打字稿找不到 .d.ts 文件的主要内容,如果未能解决你的问题,请参考以下文章

错误:“HTMLDivElement”类型上不存在属性“值”?打字稿找不到我的div?

打字稿导入文本文件“错误 TS2307:找不到模块”

找不到角度打字稿打字参考路径

在打字稿中找不到名称“省略”

找不到打字稿类型声明

KotlinJS + Typescript:在 d.ts 文件中找不到 Atomicfu TraceBase 参考