使用打字稿正确导入平面缓冲区
Posted
技术标签:
【中文标题】使用打字稿正确导入平面缓冲区【英文标题】:importing flatbuffers correctly with typescript 【发布时间】:2019-11-24 08:14:45 【问题描述】:在打字稿中,我使用这样的平面缓冲区:
import flatbuffers from 'flatbuffers';
const builder = new flatbuffers.Builder(1);
然后我编译为 js 以与 react-native 一起使用:
const flatbuffers_1 = require("flatbuffers");
const builder = new flatbuffers_1.flatbuffers.Builder(1);
但我得到错误:
undefined is not an object (evaluating 'new flatbuffers_1.flatbuffers.Builder')
发生了什么?
【问题讨论】:
您是否尝试过以下操作:google.github.io/flatbuffers/… @Alvin 你有没有得到这个工作。我正在尝试在带有 React Native(Expo fork)的 javascript 中使用平面缓冲区。它在浏览器中运行良好,但在 android 上我像你一样收到undefined is not an object
错误。我的 flatbuffers
对象未定义...我检查了文件,我想知道这是否与使用 namespace
和 global
有关。
【参考方案1】:
不是直接的解决方案,但我使用的是更现代的方法/ ES6 导入,并且当我执行以下操作时它可以正常工作:
import flatbuffers from "flatbuffers";
const builder = new flatbuffers.Builder(6000);
// ...
虽然我不得不将生成类中的代码生成输出从import * as flatbuffers from 'flatbuffers';
修改为import flatbuffers from 'flatbuffers';
【讨论】:
以上是关于使用打字稿正确导入平面缓冲区的主要内容,如果未能解决你的问题,请参考以下文章