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 在开发者体验方面的持续改进。建议开发者可以开始尝试这些功能,为未来的正式版本做好准备。

相关推荐
a努力。6 分钟前
2026 AI 编程终极套装:Claude Code + Codex + Gemini CLI + Antigravity,四位一体实战指南!
java·开发语言·人工智能·分布式·python·面试
Anastasiozzzz2 小时前
LRU缓存是什么?&力扣相关题目
java·缓存·面试
源代码•宸4 小时前
Leetcode—3. 无重复字符的最长子串【中等】
经验分享·后端·算法·leetcode·面试·golang·string
CCPC不拿奖不改名5 小时前
python基础面试编程题汇总+个人练习(入门+结构+函数+面向对象编程)--需要自取
开发语言·人工智能·python·学习·自然语言处理·面试·职场和发展
填满你的记忆6 小时前
【从零开始——Redis 进化日志|Day7】双写一致性难题:数据库与缓存如何不再“打架”?(附 Canal/读写锁实战)
java·数据库·redis·缓存·面试
码界奇点6 小时前
基于前后端分离架构的智能面试刷题系统设计与实现
spring boot·面试·职场和发展·架构·毕业设计·源代码管理
GSDjisidi7 小时前
正社員・個人事業主歓迎|GSD東京本社で働こう|業界トップクラスの福利厚生完備
开发语言·面试·职场和发展
阿拉伯柠檬7 小时前
网络层协议IP(二)
linux·网络·网络协议·tcp/ip·面试
努力学算法的蒟蒻8 小时前
day62(1.21)——leetcode面试经典150
面试·职场和发展
得贤招聘官9 小时前
AI面试破局深水区:从工具迭代到价值重构
人工智能·面试·重构