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

相关推荐
JAVA9659 小时前
JAVA面试-JVM篇 03-JVM运行时数据区哪些是线程私有的哪些是共享的
java·jvm·面试
枫子有风11 小时前
LLM-Agent智能体(大厂面试常问)
面试·职场和发展·llm·agent
Oo_行者_oO15 小时前
删库先别跑路,万一修复呢?MySQL 误删数据恢复可落地运维文档
数据库·面试
Moment15 小时前
从多人编辑到 Agent 写文档,Hocuspocus v4 正在改写协同系统 😍😍😍
前端·后端·面试
贺国亚15 小时前
评估-Eval-Hallucination与质量度量
后端·面试
javaDocker16 小时前
某大厂AI应用开发面试题
面试·职场和发展
CS_SKILL16 小时前
腾讯后台社招一面:系统调用、TCP 可靠性、URL 到 DNS,再加一个计时函数设计题
网络·tcp/ip·面试·腾讯校招·后台开发面经
CoderYanger16 小时前
A.每日一题:2095. 删除链表的中间节点
java·数据结构·程序人生·leetcode·链表·面试·职场和发展
周末也要写八哥16 小时前
面经经验分享|熟练掌握面试考点
经验分享·面试·职场和发展
不知名的老吴16 小时前
面经经验分享|模拟面试的重要性前瞻
经验分享·面试·职场和发展