美文网首页莫名其妙
npm包声明文件无法使代码正常提示的问题 ts(2693)

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

作者: DADFAD | 来源:发表于2019-07-26 11:49 被阅读0次

    在封装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;
    

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/vcsrrctx.html