Salesforce Summer '25 新特性:TypeScript 支持和本地开发预览

Salesforce Summer '25 新特性:TypeScript 支持和本地开发预览

Salesforce Summer '25 版本带来了两个重要的开发者功能预览:LWC 对 TypeScript 的支持和本地开发实时预览功能的增强。

一、LWC TypeScript 支持(开发者预览)

核心优势

  • 静态类型检查提高代码质量
  • 更好的代码提示和自动补全
  • 提升大型项目的可维护性

重要说明

  • 当前处于开发者预览阶段,无法用于生产环境
  • TypeScript 代码只能在本地运行,无法直接部署到 Salesforce
  • 必须使用 Git 等版本控制工具管理源代码

配置步骤

  1. .vscode/settings.json 中启用支持:
JSON 复制代码
{
  "salesforcedx-vscode-lwc.preview.typeScriptSupport": true
}
  1. 配置 tsconfig.json
JSON 复制代码
{
  "compilerOptions": {
    "experimentalDecorators": false,
    "paths": {
      "c/yourComponent": ["/yourComponent/yourComponent.ts"]
    }
  }
}

3. 安装必要依赖:

BASH 复制代码
npm install typescript --save-dev
npm install --save-dev @salesforce/lightning-types
  1. 创建 types/salesforce.d.ts 文件:
TYPESCRIPT 复制代码
import "@salesforce/lightning-types";

5. 将 .js 文件重命名为 .ts,然后编译:

BASH 复制代码
npx tsc --project force-app\main\default\lwc      

注意事项

LWC 装饰器(@api, @track 等)目前会引发 TypeScript 错误,需要在每行前添加:

TYPESCRIPT 复制代码
// @ts-ignore
@api propertyName;

二、本地开发实时预览增强

支持场景

  • Lightning Experience 应用(正式版,Spring '25+)
  • Experience Cloud LWR 站点(公测版)
  • 单组件预览(测试版,Summer '25)

使用方法

  1. 安装必要工具:
BASH 复制代码
npm install @salesforce/cli -g
sf plugins install @salesforce/plugin-lightning-dev@latest
  1. 启动本地预览:
BASH 复制代码
sf lightning dev app

支持的测试环境

  • 支持 iOS 模拟器和 Android 模拟器
  • 需要预先安装 Xcode 或 Android Studio

限制条件

  • 仅支持 LWC,不支持 Aura 组件
  • 不支持预览着陆页
  • 单组件预览功能有限

三、HTML Class 绑定语法改进(LWC API v62.0)

从 v62.0 开始,class 绑定的行为有重要变更:

数组绑定

JAVASCRIPT 复制代码
// 输入: ["note", "highlight"]
// v62.0 输出: class="note highlight"
// v61.0 输出: class="note,highlight"

对象绑定

JAVASCRIPT 复制代码
// 输入: {block: true, hidden: false}
// v62.0 输出: class="block"
// v61.0 输出: class="[object Object]"

非字符串值处理

JAVASCRIPT 复制代码
// 输入: false, 10, () => {}
// v62.0 输出: class="" (被忽略)
// v61.0 输出: class="false", class="10" 等

实际示例

html 复制代码
<template>
  <div class={computedClassNames}>Content here</div>
</template>
JAVASCRIPT 复制代码
export default class MyComponent extends LightningElement {
  position = "left";
  fullWidth = true;
  hidden = false;
  
  get computedClassNames() {
    return [
      "div__block",
      this.position && `div_${this.position}`,
      {
        "div_full-width": this.fullWidth,
        hidden: this.hidden
      }
    ];
  }
}
// 输出: <div class="div__block div_left div_full-width">...</div>

总结

这些新功能虽然还在预览阶段,但展示了 Salesforce 在开发者体验方面的持续改进。建议开发者可以开始尝试这些功能,为未来的正式版本做好准备。

相关推荐
黄敬峰3 小时前
从零搞懂 useState 与 Fragment:React 函数式组件的基石
面试
Android研究员8 小时前
Android进阶之事件分发机制深度剖析
android·前端·面试
触底反弹8 小时前
🔥 AI 写代码总翻车?这套实战方法论救了我
人工智能·面试·程序员
风栖柳白杨8 小时前
【面试】AI算法工程师_空白自测版本
人工智能·算法·面试
风栖柳白杨11 小时前
【面试】职位要求_准备
面试·职场和发展
Assby12 小时前
为什么我不建议你在 MySQL 里写 `IN (超过1000个ID)`?从 AST 解析到存储引擎的深度拆解
后端·面试
触底反弹1 天前
🚀 从 DOM0 级到 React 合成事件:前端事件监听的 20 年演进史
前端·react.js·面试
kyriewen1 天前
我给前端项目的接口请求套了6层保护——才发现以前一直在裸奔
前端·javascript·面试
wdfk_prog1 天前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
LayZhangStrive1 天前
JUC相关的函数、注解、变量杂记
java·面试·多线程·juc