as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

Vega Codegen常见问题解答

Vega Codegen常见问题解答
  • 是否支持高级TypeScript类型,例如别名、泛型?

    对别名、枚举和联合有一些基本的有限支持,例如,包含别名的枚举和联合会假定别名代表的是对象。支持字符串或数字的枚举和联合,但不支持异构类型。不支持泛型。

  • 我可以在TypeScript接口中使用哪些类型?

    除了一些自定义类型(例如Int32FloatArrayBuffer)外,还支持大多数基本的TypeScript类型。有关完整列表,请参见类型映射表

  • 为什么我会看到.bak文件?

    当您使用--new标记运行Codegen时,它会为您的Turbo模块实现生成模板文件。现有同名的实现通过.bak扩展名保留,以便您在需要时将正在进行或以前的实现代码传输到新文件中。一旦不再需要引用备份文件的内容,可以将其删除。

  • 我熟悉React Native的Codegen工具,这个工具与Vega Codegen相比如何?

    “将TypeScript接口转换为原生代码模板”的基本理念是相同的。支持的确切类型集合存在差异,因为Vega的原生类型支持与React Native不是1:1对应,但它们是相似的。这个工具与构建系统和开发过程的集成位置也存在差异。React Native Codegen仍处于实验阶段,因此将来可能会有重大变化。

  • 为什么Codegen会生成Spec文件?

    将样板规范与人工提供的实现细节分开,可以让Codegen在不覆盖任何重要内容的情况下可靠地生成和重新生成样板文件。这也允许我们强制让实现与规范相匹配 - 编译器需要待实现的规范中定义的函数。
    如果您确实发现自己需要修改Spec文件,请注意,重新运行Codegen会重新生成这些文件,覆盖您的更改。

  • 我可以在一个程序包中加入多个Turbo模块吗?

    Vega Codegen目前仅支持一次生成一个模块。这是为了更好地支持自定义选项,例如模块名称的CLI标记,这些选项可能因模块而异。尽管如此,您的程序包仍然可以包含多个Turbo模块,您只需在这些模块上独立运行Codegen即可。

常见错误消息

  • 'throw new Error('Optional args are not supported by Vega TurboModules.');'(引发新错误(“Vega Turbo模块不支持可选参数。”);)

    Vega Turbo模块不支持可选参数。这不是Codegen的限制,而是Codegen引入的一项检查。如果您的TypeScript接口有可选参数 (arg?: type),则这些参数应改为必需项,因为如果不传递参数,Turbo模块将在运行时失败。
    包裹Turbo模块的JavaScript包装器可以支持可选参数。

  • 'Unrecognized generic type 'undefined' in NativeModule spec.'(出现NativeModule规范中无法识别的泛型类型“undefined”)

    此类问题很可能是由从另一个文件导入类型引起的。Codegen不支持这种操作。我们建议将这些类型移到与TypeScript接口相同的文件。某些类型(Int32DoubleFloat等)可以从@amazon-devices/keplerscript-turbomodule-api导入,Codegen支持以这种方式导入。

  • 'Unrecognized generic type 'T' in Native Module spec.'(出现NativeModule规范中无法识别的泛型类型“T”)

    Vega Turbo模块不支持泛型。

  • 'TypeScript type annotation 'TSAnyKeyword' is unsupported in NativeModule specs.'(NativeModule规范中不支持TypeScript类型注释“TSAnyKeyword”)

    any不是Codegen支持的类型。考虑使用更严格的类型定义。如果您有像 (event: any) => void这样的实际接受多个类型的回调类型,可以使用@amazon-devices/keplerscript-turbomodule-api中的CallbackParam类型。

  • 'npm ERR! 404 Not Found - GET https://registry.npmjs.org/keplerscript-turbomodule-api - Not found'('npm ERR!404未找到 - 获取https://registry.npmjs.org/keplerscript-turbomodule-api - 未找到)

    在运行脚本之前,您需要在本地工作区中安装程序包。


Last updated: 2025年9月30日