Javascript 检测变量是jsx元素还是路由器链接的正确方法

Javascript 检测变量是jsx元素还是路由器链接的正确方法,javascript,reactjs,react-router,jsx,Javascript,Reactjs,React Router,Jsx,我有以下方法: const MyComponent = ({ value }) => { if (isRouterLink(value)) { return <span>Is router link</span> } if (isElement(value)) { return <span>Is an element</span> } return <span>Is just a strin

我有以下方法:

const MyComponent = ({ value }) => {
  if (isRouterLink(value)) {
    return <span>Is router link</span>
  }

  if (isElement(value)) {
    return <span>Is an element</span>
  }

  return <span>Is just a string</span>
}

但这听起来有点脏,因为
$$typeof
似乎是私有数据。这是正确的检查方法吗?

为什么需要这样做?因为我需要根据参数是元素、对象还是链接做不同的事情为什么需要这样做?因为我需要根据参数是元素、对象还是链接做不同的事情
function isRouterLink(value) {
  return !!value.$$typeof
}

function isElement(value) {
  return !!value.type
}