如何从 NPM 键入无类型的包?

Posted

技术标签:

【中文标题】如何从 NPM 键入无类型的包?【英文标题】:How to type a untyped package from NPM? 【发布时间】:2020-06-21 20:55:34 【问题描述】:

我正在学习打字稿,但在任何地方都找不到答案:

假设我有一个用普通 JS 编写的模块 ./node_modules/do-something

function doSometing(a = '', b = ) 
  console.log(a);
  console.log(b);

  return `$a`;


module.exports = doSometing;

我想为它编写类型定义。我该怎么办?

我试过了:

// do-someting/index.d.ts

declare module 'do-something' 
  export default interface doSometing 
    (a: string, b?: any): string
  

但我总是得到Cannot augment module 'do-something' because it resolves to a non-module entity

我应该如何输入它?

【问题讨论】:

【参考方案1】:

您将扩展名放在node_modules/do-someting/index.d.ts。而是创建一个文件src/vendors.d.ts

declare module 'do-something' 
  export default interface doSometing 
    (a: string, b?: any): string
  

【讨论】:

以上是关于如何从 NPM 键入无类型的包?的主要内容,如果未能解决你的问题,请参考以下文章

如何在打字稿中将类型本地添加到无类型的 npm 模块?

关于有类路由协议和无类路由协议

在npm上发布自己的包 全局包指令使用

如何在 TypeScript npm 模块中导出类型

如何识别哪些 npm 包只是对等依赖项?

如何使用NPM?CNPM又是什么?