例如,我正在为我的javascript库编写一个类型声明文件,其中包括:
interface test {
(): void
x: number
y: number
}
我只希望公开以下内容:
但是从Function继承的属性也会被公开:
这会使我的IDE提供的建议变得混乱。
答案 0 :(得分:2)
JavaScript不像C ++那样支持运算符重载,因此您不能重载()
运算符以在JavaScript或TypeScript中创建函子类型的对象,因此,任何支持()
的值运算符必须是JavaScript函数对象,这意味着它继承了caller
,name
,length
和prototype
属性。没有办法解决这个问题。
这会使我的IDE提供的建议变得混乱。
这不是尝试颠覆您的语言系统的好理由。您应该向IDE供应商提出功能请求(如果是开源的,则提交补丁)以隐藏或不强调继承的成员。