export function createElement()

in packages/core/src/index.ts [46:82]


export function createElement(type: 'Circle'): RenderCircle
export function createElement(type: 'Path'): RenderPath
export function createElement(type: 'ScrollView'): RenderScrollView
export function createElement(type: 'Text'): RenderText
export function createElement(type: 'Image'): RenderImage

// Workaround 重载函数不支持 Union 类型参数
// see https://github.com/microsoft/TypeScript/issues/14107
export function createElement(type: ElementType): RenderObject

export function createElement(type: ElementType): RenderObject {
  if (type === 'View') {
    return new RenderView()
  } if (type === 'Chunk') {
    return new RenderChunk()
  } else if (type === 'Flex') {
    return new RenderFlex()
  } else if (type === 'Canvas') {
    return new RenderCanvas()
  } else if (type === 'Rect') {
    return new RenderRect()
  } else if (type === 'RRect') {
    return new RenderRRect()
  } else if (type === 'Circle') {
    return new RenderCircle()
  } else if (type === 'Path') {
    return new RenderPath()
  } else if (type === 'ScrollView') {
    return new RenderScrollView()
  } else if (type === 'Text') {
    return new RenderText()
  } else if (type === 'Image') {
    return new RenderImage()
  }

  throw new Error(`没有该类型的 Element: ${type}`)
}