@fluixi/ts-plugin (英语)
TypeScript 语言服务插件 html`...` 模板相同的编辑器
支持JSX获得.
问题
TypeScript 将标签模板视为不透明字符串 。 里面的东西都掉下来了
映射: 仅通过标签引用的组件被报告为“ 已声明但从未使用 ” , 回调
parm是隐含的 any没有什么是完整的,徘徊什么也没有说,去定义
放在模板文字上而不是组件上.
function UserCard() { /* … */ }
const app = html`<main><UserCard /></main>`;
// ^ greyed out — TypeScript never counted this as a reference
写入 html 不应该浪费你的编辑.
你得到的东西
以 @fluixi/template-parser,绘制每个标签和
洞回到真正的源位置,并询问程序自己的检查器对此:
- 缓冲: 组件标记显示其签名,道具显示其声明的类型, an
元素属性显示它需要什么,并推断出召回参数(
each, (中文(简体) ),event, (中文(简体) ),ref, (中文(简体) ),use, (中文(简体) ),Show)显示它所推断的类型. - 完成: 标记内的组件道具名称, 内在的元素属性
标记,以及推定参数的成员(
it., (中文(简体) ),el., (中文(简体) ),e.) (中文(简体) ). - 导航:去定义,查找所有参考,并通过标记重命名工作.
重命名只当 TypeScript 自己的重命名成功时添加了标签, 所以您永远不会得到一个
重写
<Tag>与一个 stale</Tag>。 。 。 . - 诊断: 模板中的赤色存取器(
html`<p>${count}</p>`有标记, 因为它使功能一次更新,永远不更新; 一个不存在于一个 报告推定的参数. - 安静点:未使用组成部分报告和隐含
any参数上的噪音 模板可以推断为已删除. - 快速修正:"呼吁
count" 对于一个赤裸的存取器,有一个整齐的文件.
打开它
把它加入你的项目 tsconfig.json 并使用 工作空间 类型脚本版本
(VS代码: TypeScript: Select TypeScript Version → Use Workspace Version: tsconfig 插件
只在工作空间 TS 下装入 :
{
"compilerOptions": {
"plugins": [{ "name": "@fluixi/ts-plugin" }]
}
}
没有别的事了 JSX 不需要插件, 也不需要插件 $signal- 风格内在:
键入 fluixi.d.ts 编译器生成.
如何不碍事
一切都在计算 现有 程序检查器。 该插件没有创建语言 服务,不添加文件,也绝不接触主机:它包接它交给的服务 每一个加法都被包了起来 所以失败的代价是额外的信息 而不是真正的答案.
这种克制是蓄意的。 内部进行深层类型检查的两个早期设计 ${...} 孔头
两人都得走: 一秒钟 ts.LanguageService 指第二个文件注册,所以 lib.d.ts
和节点模块进行了两次解析;并通过 getScriptFileNames 重新输入
每个项目同步上的主机,语言服务全然崩溃。 洞层
诊断也不值得: ${...} 孔是一个真实的表达式, 所以 TypeScript 已经
检查它.
许可证
麻省理工学院