用途:这是 FAST monorepo 中处理 TypeScript 变更时的编码指南,适用于编写 Web Components、模板、样式及相关逻辑。
主要能力与约定:模块方面,fast-element 启用 verbatimModuleSyntax,类型导入须用 import type 或内联 type 限定符;子入口点通过 exports map 暴露聚焦 API,如 @microsoft/fast-element/two-way.js、state.js;除 index.ts 外不应有 barrel 导出。副作用方面,不添加有副作用的代码,也不在 package.json 中添加 sideEffects。浏览器 API 方面,避免实现 requestIdleCallback、setTimeout、setInterval;requestAnimationFrame、queueMicrotask 应尽量避免。自定义元素继承 FASTElement,不使用 @customElement 装饰器,改用 define() 注册。模板使用 html 标签模板字面量,支持内容/属性绑定、@event 事件、:prop 属性、?attr 布尔属性,双向绑定需从 two-way.js 导入 twoWay;可用 html.partial() 注入预构建 HTML。样式使用 css 标签模板字面量,通过元素定义的 styles 属性附加,声明式 HTML 定义中样式放在单独的 .styles.css 文件。响应式方面,@attr 映射属性,@observable 创建响应式属性,@volatile 标记依赖变化的 getter,原地变更后需 Observable.notify;普通对象可用 state.js 的 reactive 转为可观察。测试使用 Playwright Test(*.pw.spec.ts),分直接导入测试与浏览器求值测试,后者通过 page.evaluate 导入 /main.js,仅可序列化值能跨边界。类型惯用法包括 const 类型合并枚举、接口与 const 合并、标签模板交叉类型。
限制:资料未提供安装命令、收费、平台或效果等信息。