npm包声明文件无法使代码正常提示的问题 ts(2693)

在封装npm包时希望为其书写ts声明文件,以起到代码提示的功效,但在引入包之后却引起了ts报错:

“myLib”仅表示类型,但在此处却作为值使用。ts(2693)

示例代码如下

// package.json
{
  "main": "lib/index.js",
  "typings": "lib/index.d.ts"
}
//lib/index.js
module.exports = require('./core.js');
// lib/index.d.ts
export default interface MyLib {}
// project/main.ts
// 项目内应用
import myLib from 'myLib';
myLib(); // “myLib”仅表示类型,但在此处却作为值使用。ts(2693)

原因在于index.d.ts的默认导出应与index.js保持一致,当前的写法认为index.js导出了一个interface(接口),自然会提示类型不能当做值使用,改为以下写法即可解决问题:

// lib/index.d.ts
export interface MyLib {}
declare const myLib: MyLib;
export default myLib;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容