You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需修改react-native源码,如何扩展PlatformOSType类型?

扩展React Native的PlatformOSType类型(无需修改官方d.ts)

你可以通过TypeScript模块扩充的方式实现,避免覆盖原模块的所有声明,具体操作如下:

  • 不要直接重新声明整个react-native模块,而是先导入原模块,再对目标类型进行扩充
  • 在项目中新建一个.d.ts文件(比如src/types/react-native-extension.d.ts),写入以下代码:
import 'react-native';

declare module 'react-native' {
  export type PlatformOSType = import('react-native').PlatformOSType | 'samsung_tv' | 'lg_tv';
}

为什么之前的写法会覆盖所有声明?

你之前的代码直接声明了react-native模块,但没有先导入原模块,TypeScript会将其视为全新的模块定义,而非对已有模块的扩充,因此会覆盖官方的所有类型声明。而先导入原模块后再扩充,TypeScript会自动合并原模块与你新增的类型定义,仅扩展PlatformOSType。

验证生效

配置完成后,在代码中使用Platform.OS时,TypeScript会自动识别samsung_tv和lg_tv这两个新增值,不会再出现类型报错。

内容的提问来源于stack exchange,提问作者Budaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:30:47