Dart 里没有像 TypeScript 的接口体系,官方说用abstract
,但有些情况下还是无法平替。
比如下面这个常见的诉求:
// TypeScript里用指定接口约束一个对象
interface Cat {
name: string,
age: int,
}
const kitten: Cat = {
name: "aGua",
age: 1
}
const catList: Cat[] = [
{name: "bGua", age: 2},
{name: "cGua", age: 3}
]
Dart里就很抓瞎,也没找到太好的办法,只能这样写:
// Dart(默认空安全),结合类的构造函数实现
class Cat {
String name;
int age;
Cat({required this.name, required this.age})
}
void main () {
final Cat kitten = Cat(name: "aGua", age: 1);
final List<Cat> = [
Cat(name: "bGua", age: 2),
Cat(name: "cGua", age: 3)
];
}
虽然但是,还是希望官方能出个正式的接口功能吧。。。