Flutter 如何限定Child 必须是某种类型?

7 min read

在 Flutter 中,可以使用泛型来限定 Widget 关联的数据类型。例如,如果我们想让一个 Widget 只能包含一种特定类型的 Child,可以这样定义 Widget:

class MyWidget<T extends Widget> extends StatelessWidget {
  final T child;
  
  MyWidget({required this.child});
  
  @override
  Widget build(BuildContext context) {
    return child;
  }
}

其中,我们使用了泛型 <T> 来限定 Child 的类型,使它必须是 Widget 或 Widget 的子类。通过这种方式,我们可以确保在使用 MyWidget 的时候,只能传入特定类型的 Child。