TypeScript:有没有一种方法可以使用JSDOC @deprecated标记来标记从模块导入的符号为deprecated?

polhcujo  于 2023-04-22  发布在  TypeScript
关注(0)|答案(1)|浏览(223)

当从第三方模块导入时,我想将一个符号标记为deprecated。在下面的示例中,bar是一些导出函数foo的npm模块,我想将foo标记为deprecated,以通知该API不应再使用。

import {foo} from 'bar';

foo();
um6iljoc

um6iljoc1#

据我所知,@deprecated标记必须写在导入的符号的声明位置。
我尝试创建两个测试仓库,并使用declare module...声明合并,但得到以下错误:
无法重新声明块范围的变量'foo'. ts(2451)
作为一种解决方法,您可以将函数导入到自己的模块中,并将其分配给一个新变量,应用您想要的任何文档-然后重新导出它以在其他模块中使用。例如:
./src/bar.ts

import { foo as fooImport } from "bar";

/** @deprecated */
export const foo: typeof fooImport = fooImport;

./src/another_module.ts

import { foo } from "./bar";

foo();
//^? Will have the @deprecated JSDoc

相关问题