learn v0
1.0.0
이것은 AO 학습을위한 플랫폼이며, AO 학습에 도움이되는 일련의 대화식 연습으로 구성됩니다.
더 많은 연습 src/data 추가하려면 filename <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 | 이전 연습의 엔드 포인트 (값은 데이터/index.ts 파일에 존재해야합니다) | 끈 | 진실 | "10- 연결된 벽걸이" |
| 노선 | 현재 연습의 엔드 포인트 (값은 데이터/index.ts 파일에 존재해야합니다) | 끈 | 진실 | "20-reate-Wallet" |
| Nextroute | 다음 연습의 엔드 포인트 (값은 data/index.ts 파일에 존재해야 함) | 끈 | 진실 | "30-chreate-asset" |
| 제목 | 운동 제목 | 끈 | 진실 | "지갑 만들기" |
| 콘텐츠 | Markdown은 운동에 대한 설명을 지원했습니다 | 끈 | 진실 | "# Markdown" |
| 기본 코드 | 운동의 기본 상용구 코드 | 끈 | 진실 | "인쇄 ( 'Hello World')" |
| expectresult* | 운동의 예상 결과 (끈 또는 물체) | 문자열 또는 texpectedResult | 진실 | "Hello World"또는 { run:"print('Hello World')", "Hello World" } 또는 {run:"Inbox[#Inbox].Data"} |
| Runlua | 부울 LUA 코드를 실행하여 출력을 확인하기로 결정하는 부울 (Exportresult가 TexpectedResult 유형이라면 항상 사실이어야합니다) | 부울 | 거짓 | 진실 |
| allownext | 기본적으로 다음 연습으로 이동할 수있는 부울 | 부울 | 거짓 | 진실 |
| Fromid | 특정 프로세스에서받은 편지함 메시지를 받았는지 확인하는 경우 (AO.ID로 보내는 경우 자체) | "자기"또는 문자열 | 거짓 | ""또는 "자기" |
| ValideTimestamp | 운동 코드를 실행 한 후받은 편지함 메시지가 수신되었는지 확인하려면 (타임 스탬프 비교) | 부울 | 거짓 | 진실 |
*expectresult는 문자열 또는 객체 일 수 있습니다
type TExpectedResult =
| string
| {
run : string ;
out ?: string ;
} ;| 필드 | 설명 | 유형 | 필수의 | 예제 값 |
|---|---|---|---|---|
| 달리다 | LUA 코드는 예상 결과를 얻기 위해 실행됩니다 | 끈 | 진실 | "Print ( '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 } ;중요한 메모 :