HarmonyOS 鸿蒙Next arkTS 支持子组件接受泛型T吗

发布于 1周前 作者 bupafengyu 最后一次编辑是 5天前 来自 鸿蒙OS

父组件:

import son from './son'

interface IData {
  key: string
}

@Entry
@Component
struct p {

  build() {
    Column() {

      son<IData>({
        data: ['XXX']
      })

    }
  }
}

子组件:

@Component
export default struct son<T> {
  @Prop data: T[]

  build() {
    Column() {
      Text(JSON.stringify(this.data))
    }
  }
}

但是却报错了


更多关于HarmonyOS 鸿蒙Next arkTS 支持子组件接受泛型T吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

strcut装饰的自定义组件不支持泛型,可以看下这个demo:

父组件:

import son from '../comp/Son'

interface IData {
  key: string
}

export type uni = string | IData

@Entry
@Component
struct p {
  build() {
    Column() {

      son({
        //IData 类型
        data: [{ 'key': '1111' }]
        // string类型
        // data: ['XXX']
      })

    }
  }
}

子组件:


import { uni } from '../pages/Index'

@Component
export default struct son {
  @Prop data: uni[]

  build() {
    Column() {
      Text(JSON.stringify(this.data))
    }
  }
}

鸿蒙中strcut装饰的自定义组件不支持泛型,建议使用联合类型,实现自定义组件类似泛型的功能 参考文档链接:‘https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/arkts-more-cases-V13#struct支持联合类型的方案’

更多关于HarmonyOS 鸿蒙Next arkTS 支持子组件接受泛型T吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next arkTS 支持子组件接受泛型T

在HarmonyOS鸿蒙Next的arkTS框架中,支持泛型(Generics)的概念,允许开发者在定义组件或函数时指定类型参数,从而提高代码的重用性和类型安全性。然而,关于子组件是否直接支持接受泛型T作为属性或参数,具体实现可能依赖于鸿蒙系统的版本和arkTS框架的更新情况。

一般来说,如果arkTS框架允许在组件内部使用泛型来定义属性或方法,那么理论上子组件也应该能够接收泛型T类型的参数。但在实际操作中,开发者需要确保所使用的鸿蒙系统版本和arkTS框架支持这一特性,并且正确配置和使用泛型。

具体到HarmonyOS鸿蒙Next中,建议查阅最新的官方文档或开发指南,以获取关于泛型支持及子组件参数传递的详细信息。如果当前版本的arkTS框架尚未直接支持子组件接收泛型T,开发者可能需要通过其他方式(如类型断言、接口设计等)来实现类似的功能。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。在此页面上,您可以找到相关的联系方式和更详细的解决方案。

回到顶部