typescript 覆盖环境声明中的默认lib类型

31moq8wy  于 2023-06-30  发布在  TypeScript
关注(0)|答案(1)|浏览(162)

我目前正在尝试将环境TypeScript声明(.d.ts)添加到一个用于非TS环境的普通JS库中。
这些声明通过特殊的/// <reference path="app.d.ts" />指令导入。即使在不直接使用TypeScript的代码库中(由于大多数IDE中可用的LSP TypeScript集成),这也可以方便地实现代码完成。
我的JS库有一个名为Partial的全局类的声明,但因为它与Partial实用程序类型冲突,它导致错误,编辑器拒绝自动完成它。
为了清楚起见,下面是我的类环境声明的样子:

declare class Partial {
  constructor(data?: { [key:string]: any })
}

每一个其他声明都像预期的那样工作--编辑器提供了自动完成和悬停文档。
我能找到的唯一解决方案是添加/// <reference no-default-lib="true"/>,它可以工作,但这禁用了默认js类型(数组,字符串等)的代码完成。
是否有方法覆盖/禁用默认TS库中的具体类型以避免类型冲突?

u3r8eeie

u3r8eeie1#

我从www.example.com中找到了一个变通方法https://github.com/microsoft/TypeScript/issues/27594#issuecomment-566836640。

interface PartialAlias { ... }

declare const Partial: {
  new(data?: { [key:string]: any }): PartialAlias;
};

相关问题