Dart 中的递归对象类型?

Recursive object types in Dart?

我应该注意,我来自 TypeScript 背景,这让我的 perspective/nomenclature 在这里很显眼。

在 TypeScript 中,您可以非常轻松地定义递归接口:

interface User {
  name: string,
  friends: User[]
}

const bob:User = {
  name: "Bob",
  friends: []
}

你会如何在 Dart 中做到这一点?

解决方案没有太大区别。

class User {
  String name;
  List<User> friends;
}


void main() {
  var bob = User();
  bob.name = "Bob";
  bob.friends = [User(), User(), User()];

  print(bob.name); // Bob

  print(bob.friends); // [Instance of 'User', Instance of 'User', Instance of 'User']
}