learn v0
1.0.0
这是一个学习AO的平台,它包括一系列互动练习,以帮助您学习AO。
要添加更多练习,您需要在src/data文件夹中创建一个新文件,并使用文件名<number>.<name>.ts创建一个新文件
TS文件应包含类型TExerciseData的默认导出对象
并且必须将其端点路由添加到data/index.ts中的对象。
export interface TExerciseData {
route : string ;
nextRoute : string ;
prevRoute : string ;
title : string ;
content : string ;
defaultCode : string ;
expectedResult : string | TExpectedResult ;
runLua ?: boolean ;
allowNext ?: boolean ;
fromId ?: "SELF" | string ;
validateTimestamp ?: boolean ;
}| 场地 | 描述 | 类型 | 必需的 | 示例值 |
|---|---|---|---|---|
| PrevRoute | 上一个练习的端点(data/index.ts文件中必须存在值) | 细绳 | 真的 | “ 10-Connect-Wallet” |
| 路线 | 当前练习的端点(值必须存在于数据/索引。 | 细绳 | 真的 | “ 20-Create-Wallet” |
| NextRoute | 下一个练习的端点(data/index.ts文件中必须存在值) | 细绳 | 真的 | “ 30创建的资产” |
| 标题 | 练习的标题 | 细绳 | 真的 | “创建钱包” |
| 内容 | 降级支持练习的描述 | 细绳 | 真的 | “#降价” |
| DefaultCode | 练习的默认样板代码 | 细绳 | 真的 | “印刷('Hello world')” |
| 预期* | 练习的预期结果(弦或对象) | 字符串或TexpectedResult | 真的 | “ Hello world”或{ run:"print('Hello World')", "Hello World" }或{run:"Inbox[#Inbox].Data"} |
| runlua | 布尔值决定通过运行一些LUA代码来检查输出(如果预期的质量为texpectedResult,则必须始终是正确的) | 布尔 | 错误的 | 真的 |
| Allext | 默认情况下允许进入下一个练习的布尔值 | 布尔 | 错误的 | 真的 |
| 从源 | 如果我们正在检查是否已经从特定过程收到收件箱消息(如果我们将其发送到ao.id) | “自我”或字符串 | 错误的 | ”或“自我” |
| VAINTATETIMESTAMP | 在运行练习代码后检查是否收到收件箱消息(比较时间戳) | 布尔 | 错误的 | 真的 |
*预期可以是字符串或对象
type TExpectedResult =
| string
| {
run : string ;
out ?: string ;
} ;| 场地 | 描述 | 类型 | 必需的 | 示例值 |
|---|---|---|---|---|
| 跑步 | LUA代码运行以获得预期的结果 | 细绳 | 真的 | “印刷('Hello World!')”” |
| 出去 | 如果声明,将检查运行字段的输出是否等于此值,否则将将LUA输出与用户在练习中写的代码的输出进行比较 | 细绳 | 选修的 | “你好世界!” |
创建对象后,您需要将其添加到data/index.ts 。
import { TExerciseData } from "@/types" ;
export default {
prevRoute :... ,
route :... ,
nextRoute :... ,
.
.
.
} as TExerciseData ; import { TExerciseData } from "@/types" ;
export default {
"10-connect-wallet" : require ( "@/data/10.connect-wallet" ) . default ,
"20-spawn-process" : require ( "@/data/20.spawn-process" ) . default ,
"30-hello-ao" : require ( "@/data/30.hello-ao" ) . default ,
.
.
.
"<your-route>" : require ( "@/data/<your-exercise-file" ) . default ,
} as { [ foo : string ] : TExerciseData } ;重要说明: