【问题标题】:Override existing interfaces to remove members覆盖现有接口以删除成员
【发布时间】:2018-01-02 02:38:03
【问题描述】:

在 TypeScript 中,给定范围内的现有类型,是否有办法重新声明该类型以删除某些成员?

具体来说,我想从 Number 中删除像 toExponential() 这样的函数,并让智能感知在此后的所有数字上反映这种变化

谢谢

【问题讨论】:

  • 您的意思是要从Number 接口中删除toExponential()
  • 是的,但我认为它们在 TS 中是同义词?但如果不是那么是的,这就是我的意思。我不控制其初始声明和/或内置的类型
  • 我不认为你可以合并/覆盖它来删除它,但你可以用你自己的版本替换lib.es5.d.ts,不包括它。
  • 以上,我不知道“isExponential()是什么。你的意思是toExponential()吗?
  • @jcalz 我愿意,对不起。一边走路一边在移动客户端上写字!

标签: typescript visual-studio-code typescript-typings


【解决方案1】:

最后,我只是在我为项目编写的现有 d.ts 文件的顶部插入了这个:

// Prevent Intellisense suggesting default ES interfaces
/// <reference no-default-lib="true"/>

它位于根目录下的 typings/ 文件夹中(尽管不确定在较新的 TS 设置中是否需要文件夹结构约定)。

这可以防止 VSCode 建议 ES 样式接口完成。然后,我可以根据需要将 ES 接口从默认库复制到此文件中(目前我不需要!)。

感谢上面的评论者帮助我找到了这个解决方案。目前运行良好!

【讨论】:

    猜你喜欢
    • 2017-10-21
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 2013-02-18
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多