TypeScript Support stripInternal for types in JSDoc

uujelgoq  于 9个月前  发布在  TypeScript
关注(0)|答案(3)|浏览(114)

建议

🔍 搜索词

jsdoc internaljsdoc internal stripinternal

✅ 可实现性检查清单

我的建议满足以下准则:

  • 这不会对现有的TypeScript/JavaScript代码造成破坏性的更改
  • 这不会改变现有JavaScript代码的运行时行为
  • 这可以在不根据表达式的类型发出不同的JS的情况下实现
  • 这不是一个运行时特性(例如库功能、JavaScript输出的非ECMAScript语法、JS的新语法糖等)
  • 这个特性将与 TypeScript's Design Goals 的其他部分保持一致。

⭐ 建议

目前,如果在编译器选项中设置了 "stripInternal": true ,可以使用 @internal JSDoc注解来防止它出现在生成的类型定义中。
在使用JSDoc中的类型时,可以使用以下方式定义类型:

  1. /**
  2. * @typedef {object} MyType
  3. * Description of `MyType`.
  4. */

如果 @internal 也可以应用于JSDoc中的类型,那就太好了。

📃 动机示例

如果启用了 "stripInternal" 选项,现在 @internal 注解也适用于在JSDoc中定义的类型。

  1. /**
  2. * @typedef {object} MyType
  3. * @internal
  4. */

💻 用例

这些typedefs总是导出,但通常它们只被定义为导入类型。这意味着包经常需要仅对他们的类型添加依赖项,即使他们的意图不是重新导出它们。

  1. /**
  2. * @typedef {import('my-package').MyType} MyType
  3. * @internal
  4. */

unified 生态系统中存在许多实际用例。
例如 remark-rehype

yks3o0rb

yks3o0rb1#

你是否成功地使它工作?

jhiyze9q

jhiyze9q2#

不,这是一个功能请求。该功能尚不存在(尚未实现)。

btxsgosb

btxsgosb3#

我对这个问题的子任务状态感到困惑。

相关问题