搜索词
typedef quickfix
typedef jsdoc
建议
我有一个类似这样的旧闭包编译器风格的项目,有很多代码:
/**
* @typedef {{
* px: number,
* py: number,
* isZooming: boolean,
* isPanning: boolean,
* is2DPan: boolean,
* cancelNextDblclick: boolean,
* initializeMouseDown: (e: !Event, dygraph:!DygraphAny, context: !DygraphInteractionContext) => void
* }} DygraphInteractionContext
*/
如果我用这种类型声明一个变量,我可以发现 TypeScript 可以理解 @typedef
:
type DygraphInteractionContext = {
px: number;
py: number;
isZooming: boolean;
isPanning: boolean;
is2DPan: boolean;
cancelNextDblclick: boolean;
initializeMouseDown: (e: Event, dygraph: any, context: ...) => void;
}
我想将其转换为 type
或 interface
。我可以引入一个虚拟变量,复制 TS 风格的 type
声明并粘贴到其中进行转换。
但如果有快速修复就更好了!
使用场景
迁移一个使用 JSDoc 基础类型的项目。有一个解决方法,但快速修复将是一个很大的改进。
示例
(见上文)
检查清单
我的建议满足以下准则:
- 这不会在现有的 TypeScript/JavaScript 代码中造成破坏性更改
- 这不会改变现有 JavaScript 代码的运行时行为
- 这可以在不根据表达式的类型发出不同的 JS 的情况下实现
- 这不是一个运行时特性(例如库功能、带有 JavaScript 输出的非 ECMAScript 语法等)
- 这个特性会与 TypeScript's Design Goals 的其他部分保持一致。
2条答案
按热度按时间rpppsulh1#
从带有JSdocs的JS迁移到TS应该会更好。用实际的TS类型声明替换所有这些注解需要花费很多时间。
0wi1tuuw2#
看起来,它被 #51430 覆盖了。