莫名其妙

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

2019-07-26  本文已影响0人  DADFAD

在封装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;
上一篇下一篇

猜你喜欢

热点阅读