区分 ImmutableJS 和原生 JS 数据结构?

Distinguishing between ImmutableJS and native JS data structures?

我正在编写一个 React 组件,我打算将其制作成 public,我想让它与 JS arrays/objects 或 immutable.js 等价物( Map/List).

识别 Immutable.js 地图或列表的最佳方法是什么?我不想简单地使用 Array.isArray,因为我 do 想强制它是数组或列表,例如。

我可以只检查一些 Immutable.js 属性,例如 _origin__ownerID,但我不想依赖可能会发生变化的内部 API次要版本。

我非常推荐@robg 和@joseph-the-dreamer 给出的建议。但是,为了满足您的确切需求,每个 Immutable.Type 都有一个 Immutable.Type.isType() 静态函数,您可以使用它来确定给定对象是否属于该类型。

例如Map docs -

var im = require("immutable");

if (im.Map.isMap(someObjectWhichMayBeMap)){
    ...
}