当从第三方模块导入时,我想将一个符号标记为deprecated。在下面的示例中,bar是一些导出函数foo的npm模块,我想将foo标记为deprecated,以通知该API不应再使用。
bar
foo
import {foo} from 'bar'; foo();
um6iljoc1#
据我所知,@deprecated标记必须写在导入的符号的声明位置。我尝试创建两个测试仓库,并使用declare module...声明合并,但得到以下错误:无法重新声明块范围的变量'foo'. ts(2451)作为一种解决方法,您可以将函数导入到自己的模块中,并将其分配给一个新变量,应用您想要的任何文档-然后重新导出它以在其他模块中使用。例如:./src/bar.ts:
@deprecated
declare module...
./src/bar.ts
import { foo as fooImport } from "bar"; /** @deprecated */ export const foo: typeof fooImport = fooImport;
./src/another_module.ts:
./src/another_module.ts
import { foo } from "./bar"; foo(); //^? Will have the @deprecated JSDoc
1条答案
按热度按时间um6iljoc1#
据我所知,
@deprecated
标记必须写在导入的符号的声明位置。我尝试创建两个测试仓库,并使用
declare module...
声明合并,但得到以下错误:无法重新声明块范围的变量'foo'. ts(2451)
作为一种解决方法,您可以将函数导入到自己的模块中,并将其分配给一个新变量,应用您想要的任何文档-然后重新导出它以在其他模块中使用。例如:
./src/bar.ts
:./src/another_module.ts
: