微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-添加属性以使用TypeScript

假设我有一个名为run的函数表达式:

let run = function(){


};

我想向此运行函数添加一个名为“认”的属性,这是对自身的引用.

run.default = run;

这是为了支持JS中的多种模块导出格式.

我听说最好的方法是使用名称空间.

这是我的实际代码

namespace run {

  export interface Run {
    (paths: Array<string>, opts: run.IOpts, cb: Function): void
    default: Run;
  }

  export interface IOpts {
    babelExec?: string,
    all?: boolean
  }
}


  const run : run.Run = function (paths: Array<string>, opts: run.IOpts, cb: Function): void {

    //....

  }


run.default = run;
export = run;

但我得到这个警告:

enter image description here

有谁知道为什么会出现该错误信息?

如您所见,TS认为我没有属性属性类型,但是我很确定我使用名称空间声明…还是没有?如此错误所困扰-错误/警告似乎不正确.

解决方法:

由于分配给认值的函数没有属性,因此会产生错误,它只是一个函数.

您已将default声明为Run,因此分配给它的任何内容都还必须具有default属性.

您可以将default设为可选:

default?: Run;

或者可以将其声明为函数

default: (paths: Array<string>, opts: run.IOpts, cb: Function) => void;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐