Usage of standard library is restricted (arkts-limited-stdlib) <ArkTSCheck>
Usage of standard library is restricted (arkts-limited-stdlib)
是 ArkTS 编译器的一项限制,表明你在代码中使用了 ArkTS 标准库中被限制或不支持的 API。ArkTS 是 HarmonyOS/OpenHarmony 的开发语言,它对 JavaScript/TypeScript 标准库进行了裁剪,仅保留了部分核心功能,以确保代码在资源受限的设备上高效运行。
常见受限场景及解决办法
1. 使用了不支持的全局对象或 API
示例错误代码:
// 错误:使用了 Node.js 专属的全局对象
const fs = require('fs'); // ArkTS 不支持 Node.js 模块// 错误:使用了浏览器专属的 API
document.getElementById('element'); // ArkTS 不在浏览器环境运行
解决办法:
- 使用 ArkTS 提供的替代 API,例如:
- 文件操作使用
@ohos.fileio
模块。 - 界面操作使用 ArkUI 组件(如
Text
、Button
等)。
- 文件操作使用
2. 使用了不支持的内置对象方法
示例错误代码:
// 错误:使用了 Array.prototype.flat,ArkTS 可能不支持
const flattened = array.flat();
解决办法:
- 使用兼容的替代方法:
// 替代方案:手动实现数组扁平化 const flattened = []; array.forEach(item => {if (Array.isArray(item)) {flattened.push(...item);} else {flattened.push(item);} });
3. 使用了不支持的模块或包
示例错误代码:
// 错误:引入了非 ArkTS 生态的 npm 包
import axios from 'axios'; // ArkTS 无法直接使用 npm 包
解决办法:
- 使用 ArkTS 官方提供的模块或 HarmonyOS SDK 中的 API:
// 使用 ArkTS 提供的网络请求 API import http from '@ohos.net.http';const httpRequest = http.createHttp(); httpRequest.request('https://example.com',{ method: http.RequestMethod.GET },(err, response) => {if (!err) {console.info(`Response: ${response.result}`);}} );
4. 使用了不支持的语法特性
示例错误代码:
// 错误:使用了动态导入(ArkTS 可能不支持)
const module = await import('./module.js');
解决办法:
- 使用静态导入替代:
import module from './module.js';
最佳实践
- 查阅官方文档:使用 ArkTS 开发时,优先参考 HarmonyOS 官方文档,确认 API 是否可用。
- 避免跨平台依赖:不要直接引入 Node.js 或浏览器专属的 API。
- 使用 HarmonyOS SDK 替代方案:大多数常见功能(如网络请求、文件操作、数据库等)都有官方提供的替代模块。