像打字稿一样在飞镖中创建界面
Creating interface in dart like typescript
我来自 typescript 背景并且是 dart 的新手,在 typescript 中我们能够定义接口并将这些类型附加到具有正确格式的所需变量,例如
interface Answer {
text: string;
value: number;
}
interface Question {
question: string;
answers: Answer[
}
const questions: Question[] = [
{
'question': "What's your fav color?",
'answers': [
{
'text': 'one',
'value': 1,
},
{
'text': 'one',
'value': 2,
},
{
'text': 'one',
'value': 3,
},
{
'text': 'one',
'value': 4,
},
],
},
];
这只适用于打字稿,我不会出错。
但是在 dart 中我无法实现同样的事情。下面是我的飞镖代码。请帮助我,我收到一条错误消息 The element type 'Map<String, Object>' can't be assigned to the list type 'SingleQuestion'.
是否有任何资源可以帮助我克服从 typescript 到 dart 的迁移,最适合这些建议。
其实你的数据是json。然后对数据使用 Object class,对 SingleQuestion 使用 fromJson 函数。你的主要功能是这样的:
void main() {
Object data = {
'question': "What's your fav color?",
'answers': [
{
'text': 'red',
'value': 1,
},
{
'text': 'green',
'value': 2,
},
{
'text': 'yellow',
'value': 3,
},
{
'text': 'black',
'value': 4,
},
],
};
final List<SingleQuestion> questions = [SingleQuestion.fromJson(data)];
print(questions[0].question);
print(questions[0].answers[1].value);
print(questions[0].answers[1].text);
}
我来自 typescript 背景并且是 dart 的新手,在 typescript 中我们能够定义接口并将这些类型附加到具有正确格式的所需变量,例如
interface Answer {
text: string;
value: number;
}
interface Question {
question: string;
answers: Answer[
}
const questions: Question[] = [
{
'question': "What's your fav color?",
'answers': [
{
'text': 'one',
'value': 1,
},
{
'text': 'one',
'value': 2,
},
{
'text': 'one',
'value': 3,
},
{
'text': 'one',
'value': 4,
},
],
},
];
这只适用于打字稿,我不会出错。
但是在 dart 中我无法实现同样的事情。下面是我的飞镖代码。请帮助我,我收到一条错误消息 The element type 'Map<String, Object>' can't be assigned to the list type 'SingleQuestion'.
是否有任何资源可以帮助我克服从 typescript 到 dart 的迁移,最适合这些建议。
其实你的数据是json。然后对数据使用 Object class,对 SingleQuestion 使用 fromJson 函数。你的主要功能是这样的:
void main() {
Object data = {
'question': "What's your fav color?",
'answers': [
{
'text': 'red',
'value': 1,
},
{
'text': 'green',
'value': 2,
},
{
'text': 'yellow',
'value': 3,
},
{
'text': 'black',
'value': 4,
},
],
};
final List<SingleQuestion> questions = [SingleQuestion.fromJson(data)];
print(questions[0].question);
print(questions[0].answers[1].value);
print(questions[0].answers[1].text);
}