mirror of
https://github.com/sharkdp/bat.git
synced 2025-10-16 08:43:50 +01:00
chore: update highlighted test Markdown with embedded Typescript file
This commit is contained in:
@@ -1,57 +1,57 @@
|
||||
[38;2;253;151;31m#[0m[38;2;253;151;31m [0m[38;2;253;151;31mTypescript test[0m
|
||||
|
||||
[38;2;255;255;255m```[0m[38;2;190;132;255mtypescript[0m
|
||||
[38;2;255;255;255menum Status {[0m
|
||||
[38;2;255;255;255m Pending,[0m
|
||||
[38;2;255;255;255m InProgress,[0m
|
||||
[38;2;255;255;255m Completed,[0m
|
||||
[3;38;2;102;217;239menum[0m[38;2;255;255;255m [0m[38;2;166;226;46mStatus[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255mPending[0m[38;2;255;255;255m,[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255mInProgress[0m[38;2;255;255;255m,[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255mCompleted[0m[38;2;255;255;255m,[0m
|
||||
[38;2;255;255;255m}[0m
|
||||
|
||||
[38;2;255;255;255minterface Task {[0m
|
||||
[38;2;255;255;255m id: number;[0m
|
||||
[38;2;255;255;255m title: string;[0m
|
||||
[38;2;255;255;255m status: Status;[0m
|
||||
[38;2;255;255;255m assignee?: string;[0m
|
||||
[3;38;2;102;217;239minterface[0m[38;2;255;255;255m [0m[38;2;166;226;46mTask[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255mid[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[3;38;2;166;226;46mnumber[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255mtitle[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[3;38;2;166;226;46mstring[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255mstatus[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[38;2;166;226;46mStatus[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255massignee[0m[38;2;249;38;114m?[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[3;38;2;166;226;46mstring[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m}[0m
|
||||
|
||||
[38;2;255;255;255mclass TaskManager<T extends Task> {[0m
|
||||
[38;2;255;255;255m private tasks: T[] = [];[0m
|
||||
[3;38;2;102;217;239mclass[0m[38;2;255;255;255m [0m[38;2;166;226;46mTaskManager[0m[38;2;255;255;255m<[0m[38;2;166;226;46mT[0m[38;2;255;255;255m [0m[38;2;249;38;114mextends[0m[38;2;255;255;255m [0m[38;2;166;226;46mTask[0m[38;2;255;255;255m>[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m
|
||||
[38;2;255;255;255m [0m[38;2;249;38;114mprivate[0m[38;2;255;255;255m [0m[38;2;255;255;255mtasks[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[38;2;166;226;46mT[0m[38;2;255;255;255m[[0m[38;2;255;255;255m][0m[38;2;255;255;255m [0m[38;2;249;38;114m=[0m[38;2;255;255;255m [0m[38;2;255;255;255m[[0m[38;2;255;255;255m][0m[38;2;255;255;255m;[0m
|
||||
|
||||
[38;2;255;255;255m addTask(task: T): void {[0m
|
||||
[38;2;255;255;255m this.tasks.push(task);[0m
|
||||
[38;2;255;255;255m }[0m
|
||||
[38;2;255;255;255m [0m[38;2;166;226;46maddTask[0m[38;2;255;255;255m([0m[3;38;2;253;151;31mtask[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[38;2;166;226;46mT[0m[38;2;255;255;255m)[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[3;38;2;166;226;46mvoid[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255mthis[0m[38;2;255;255;255m.[0m[38;2;255;255;255mtasks[0m[38;2;255;255;255m.[0m[38;2;102;217;239mpush[0m[38;2;255;255;255m([0m[38;2;255;255;255mtask[0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255m}[0m
|
||||
|
||||
[38;2;255;255;255m getTasksByStatus(status: Status): T[] {[0m
|
||||
[38;2;255;255;255m return this.tasks.filter(task => task.status === status);[0m
|
||||
[38;2;255;255;255m }[0m
|
||||
[38;2;255;255;255m [0m[38;2;166;226;46mgetTasksByStatus[0m[38;2;255;255;255m([0m[3;38;2;253;151;31mstatus[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[38;2;166;226;46mStatus[0m[38;2;255;255;255m)[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[38;2;166;226;46mT[0m[38;2;255;255;255m[[0m[38;2;255;255;255m][0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m
|
||||
[38;2;255;255;255m [0m[38;2;249;38;114mreturn[0m[38;2;255;255;255m [0m[38;2;255;255;255mthis[0m[38;2;255;255;255m.[0m[38;2;255;255;255mtasks[0m[38;2;255;255;255m.[0m[38;2;166;226;46mfilter[0m[38;2;255;255;255m([0m[3;38;2;253;151;31mtask[0m[38;2;255;255;255m [0m[3;38;2;102;217;239m=>[0m[38;2;255;255;255m [0m[38;2;255;255;255mtask[0m[38;2;255;255;255m.[0m[38;2;255;255;255mstatus[0m[38;2;255;255;255m [0m[38;2;249;38;114m===[0m[38;2;255;255;255m [0m[38;2;255;255;255mstatus[0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255m}[0m
|
||||
|
||||
[38;2;255;255;255m async fetchTasks(): Promise<T[]> {[0m
|
||||
[38;2;255;255;255m // Simulate async fetch[0m
|
||||
[38;2;255;255;255m return new Promise(resolve => setTimeout(() => resolve(this.tasks), 500));[0m
|
||||
[38;2;255;255;255m }[0m
|
||||
[38;2;255;255;255m [0m[38;2;249;38;114masync[0m[38;2;255;255;255m [0m[38;2;166;226;46mfetchTasks[0m[38;2;255;255;255m([0m[38;2;255;255;255m)[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[38;2;166;226;46mPromise[0m[38;2;255;255;255m<[0m[38;2;166;226;46mT[0m[38;2;255;255;255m[[0m[38;2;255;255;255m][0m[38;2;255;255;255m>[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m
|
||||
[38;2;255;255;255m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Simulate async fetch[0m
|
||||
[38;2;255;255;255m [0m[38;2;249;38;114mreturn[0m[38;2;255;255;255m [0m[38;2;249;38;114mnew[0m[38;2;255;255;255m [0m[3;38;2;166;226;46mPromise[0m[38;2;255;255;255m([0m[3;38;2;253;151;31mresolve[0m[38;2;255;255;255m [0m[3;38;2;102;217;239m=>[0m[38;2;255;255;255m [0m[38;2;102;217;239msetTimeout[0m[38;2;255;255;255m([0m[38;2;255;255;255m([0m[38;2;255;255;255m)[0m[38;2;255;255;255m [0m[3;38;2;102;217;239m=>[0m[38;2;255;255;255m [0m[38;2;166;226;46mresolve[0m[38;2;255;255;255m([0m[38;2;255;255;255mthis[0m[38;2;255;255;255m.[0m[38;2;255;255;255mtasks[0m[38;2;255;255;255m)[0m[38;2;255;255;255m,[0m[38;2;255;255;255m [0m[38;2;190;132;255m500[0m[38;2;255;255;255m)[0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255m}[0m
|
||||
[38;2;255;255;255m}[0m
|
||||
|
||||
[38;2;255;255;255m// Type guard[0m
|
||||
[38;2;255;255;255mfunction isTask(obj: any): obj is Task {[0m
|
||||
[38;2;255;255;255m return typeof obj.id === 'number' && typeof obj.title === 'string';[0m
|
||||
[38;2;117;113;94m//[0m[38;2;117;113;94m Type guard[0m
|
||||
[3;38;2;102;217;239mfunction[0m[38;2;255;255;255m [0m[38;2;166;226;46misTask[0m[38;2;255;255;255m([0m[3;38;2;253;151;31mobj[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[3;38;2;166;226;46many[0m[38;2;255;255;255m)[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[3;38;2;253;151;31mobj[0m[38;2;255;255;255m [0m[38;2;249;38;114mis[0m[38;2;255;255;255m [0m[38;2;166;226;46mTask[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m
|
||||
[38;2;255;255;255m [0m[38;2;249;38;114mreturn[0m[38;2;255;255;255m [0m[38;2;249;38;114mtypeof[0m[38;2;255;255;255m [0m[38;2;255;255;255mobj[0m[38;2;255;255;255m.[0m[38;2;255;255;255mid[0m[38;2;255;255;255m [0m[38;2;249;38;114m===[0m[38;2;255;255;255m [0m[38;2;230;219;116m'[0m[38;2;230;219;116mnumber[0m[38;2;230;219;116m'[0m[38;2;255;255;255m [0m[38;2;249;38;114m&&[0m[38;2;255;255;255m [0m[38;2;249;38;114mtypeof[0m[38;2;255;255;255m [0m[38;2;255;255;255mobj[0m[38;2;255;255;255m.[0m[38;2;255;255;255mtitle[0m[38;2;255;255;255m [0m[38;2;249;38;114m===[0m[38;2;255;255;255m [0m[38;2;230;219;116m'[0m[38;2;230;219;116mstring[0m[38;2;230;219;116m'[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m}[0m
|
||||
|
||||
[38;2;255;255;255m// Usage[0m
|
||||
[38;2;255;255;255mconst manager = new TaskManager<Task>();[0m
|
||||
[38;2;255;255;255mmanager.addTask({ id: 1, title: "Write docs", status: Status.Pending });[0m
|
||||
[38;2;255;255;255mmanager.addTask({ id: 2, title: "Review PR", status: Status.InProgress, assignee: "Alice" });[0m
|
||||
[38;2;117;113;94m//[0m[38;2;117;113;94m Usage[0m
|
||||
[3;38;2;102;217;239mconst[0m[38;2;255;255;255m [0m[38;2;255;255;255mmanager[0m[38;2;255;255;255m [0m[38;2;249;38;114m=[0m[38;2;255;255;255m [0m[38;2;249;38;114mnew[0m[38;2;255;255;255m [0m[38;2;166;226;46mTaskManager[0m[38;2;255;255;255m<[0m[38;2;166;226;46mTask[0m[38;2;255;255;255m>[0m[38;2;255;255;255m([0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255mmanager[0m[38;2;255;255;255m.[0m[38;2;166;226;46maddTask[0m[38;2;255;255;255m([0m[38;2;255;255;255m{[0m[38;2;255;255;255m [0m[38;2;255;255;255mid[0m[38;2;255;255;255m:[0m[38;2;255;255;255m [0m[38;2;190;132;255m1[0m[38;2;255;255;255m,[0m[38;2;255;255;255m [0m[38;2;255;255;255mtitle[0m[38;2;255;255;255m:[0m[38;2;255;255;255m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mWrite docs[0m[38;2;230;219;116m"[0m[38;2;255;255;255m,[0m[38;2;255;255;255m [0m[38;2;255;255;255mstatus[0m[38;2;255;255;255m:[0m[38;2;255;255;255m [0m[38;2;255;255;255mStatus[0m[38;2;255;255;255m.[0m[38;2;255;255;255mPending[0m[38;2;255;255;255m [0m[38;2;255;255;255m}[0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255mmanager[0m[38;2;255;255;255m.[0m[38;2;166;226;46maddTask[0m[38;2;255;255;255m([0m[38;2;255;255;255m{[0m[38;2;255;255;255m [0m[38;2;255;255;255mid[0m[38;2;255;255;255m:[0m[38;2;255;255;255m [0m[38;2;190;132;255m2[0m[38;2;255;255;255m,[0m[38;2;255;255;255m [0m[38;2;255;255;255mtitle[0m[38;2;255;255;255m:[0m[38;2;255;255;255m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mReview PR[0m[38;2;230;219;116m"[0m[38;2;255;255;255m,[0m[38;2;255;255;255m [0m[38;2;255;255;255mstatus[0m[38;2;255;255;255m:[0m[38;2;255;255;255m [0m[38;2;255;255;255mStatus[0m[38;2;255;255;255m.[0m[38;2;255;255;255mInProgress[0m[38;2;255;255;255m,[0m[38;2;255;255;255m [0m[38;2;255;255;255massignee[0m[38;2;255;255;255m:[0m[38;2;255;255;255m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mAlice[0m[38;2;230;219;116m"[0m[38;2;255;255;255m [0m[38;2;255;255;255m}[0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
|
||||
[38;2;255;255;255m(async () => {[0m
|
||||
[38;2;255;255;255m const allTasks = await manager.fetchTasks();[0m
|
||||
[38;2;255;255;255m allTasks.forEach(task => {[0m
|
||||
[38;2;255;255;255m if (isTask(task)) {[0m
|
||||
[38;2;255;255;255m console.log(`Task #${task.id}: ${task.title} [${Status[task.status]}]`);[0m
|
||||
[38;2;255;255;255m }[0m
|
||||
[38;2;255;255;255m });[0m
|
||||
[38;2;255;255;255m})();[0m
|
||||
[38;2;255;255;255m([0m[38;2;249;38;114masync[0m[38;2;255;255;255m [0m[38;2;255;255;255m([0m[38;2;255;255;255m)[0m[38;2;255;255;255m [0m[3;38;2;102;217;239m=>[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m
|
||||
[38;2;255;255;255m [0m[3;38;2;102;217;239mconst[0m[38;2;255;255;255m [0m[38;2;255;255;255mallTasks[0m[38;2;255;255;255m [0m[38;2;249;38;114m=[0m[38;2;255;255;255m [0m[38;2;249;38;114mawait[0m[38;2;255;255;255m [0m[38;2;255;255;255mmanager[0m[38;2;255;255;255m.[0m[38;2;166;226;46mfetchTasks[0m[38;2;255;255;255m([0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255mallTasks[0m[38;2;255;255;255m.[0m[38;2;102;217;239mforEach[0m[38;2;255;255;255m([0m[3;38;2;253;151;31mtask[0m[38;2;255;255;255m [0m[3;38;2;102;217;239m=>[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m
|
||||
[38;2;255;255;255m [0m[38;2;249;38;114mif[0m[38;2;255;255;255m [0m[38;2;255;255;255m([0m[38;2;166;226;46misTask[0m[38;2;255;255;255m([0m[38;2;255;255;255mtask[0m[38;2;255;255;255m)[0m[38;2;255;255;255m)[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m
|
||||
[38;2;255;255;255m [0m[3;38;2;166;226;46mconsole[0m[38;2;255;255;255m.[0m[38;2;102;217;239mlog[0m[38;2;255;255;255m([0m[38;2;230;219;116m`[0m[38;2;230;219;116mTask #[0m[38;2;230;219;116m${[0m[38;2;255;255;255mtask[0m[38;2;230;219;116m.[0m[38;2;230;219;116mid[0m[38;2;230;219;116m}[0m[38;2;230;219;116m: [0m[38;2;230;219;116m${[0m[38;2;255;255;255mtask[0m[38;2;230;219;116m.[0m[38;2;230;219;116mtitle[0m[38;2;230;219;116m}[0m[38;2;230;219;116m [[0m[38;2;230;219;116m${[0m[38;2;255;255;255mStatus[0m[38;2;230;219;116m[[0m[38;2;255;255;255mtask[0m[38;2;230;219;116m.[0m[38;2;230;219;116mstatus[0m[38;2;230;219;116m][0m[38;2;230;219;116m}[0m[38;2;230;219;116m][0m[38;2;230;219;116m`[0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255m}[0m
|
||||
[38;2;255;255;255m [0m[38;2;255;255;255m}[0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m}[0m[38;2;255;255;255m)[0m[38;2;255;255;255m([0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
|
||||
[38;2;255;255;255m// Type assertion[0m
|
||||
[38;2;255;255;255mconst unknownValue: unknown = { id: 3, title: "Test", status: Status.Completed };[0m
|
||||
[38;2;255;255;255mconst assertedTask = unknownValue as Task;[0m
|
||||
[38;2;255;255;255mconsole.log(assertedTask.title);[0m
|
||||
[38;2;117;113;94m//[0m[38;2;117;113;94m Type assertion[0m
|
||||
[3;38;2;102;217;239mconst[0m[38;2;255;255;255m [0m[38;2;255;255;255munknownValue[0m[38;2;249;38;114m:[0m[38;2;255;255;255m [0m[3;38;2;166;226;46munknown[0m[38;2;255;255;255m [0m[38;2;249;38;114m=[0m[38;2;255;255;255m [0m[38;2;255;255;255m{[0m[38;2;255;255;255m [0m[38;2;255;255;255mid[0m[38;2;255;255;255m:[0m[38;2;255;255;255m [0m[38;2;190;132;255m3[0m[38;2;255;255;255m,[0m[38;2;255;255;255m [0m[38;2;255;255;255mtitle[0m[38;2;255;255;255m:[0m[38;2;255;255;255m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mTest[0m[38;2;230;219;116m"[0m[38;2;255;255;255m,[0m[38;2;255;255;255m [0m[38;2;255;255;255mstatus[0m[38;2;255;255;255m:[0m[38;2;255;255;255m [0m[38;2;255;255;255mStatus[0m[38;2;255;255;255m.[0m[38;2;255;255;255mCompleted[0m[38;2;255;255;255m [0m[38;2;255;255;255m}[0m[38;2;255;255;255m;[0m
|
||||
[3;38;2;102;217;239mconst[0m[38;2;255;255;255m [0m[38;2;255;255;255massertedTask[0m[38;2;255;255;255m [0m[38;2;249;38;114m=[0m[38;2;255;255;255m [0m[38;2;255;255;255munknownValue[0m[38;2;255;255;255m [0m[38;2;249;38;114mas[0m[38;2;255;255;255m [0m[38;2;166;226;46mTask[0m[38;2;255;255;255m;[0m
|
||||
[3;38;2;166;226;46mconsole[0m[38;2;255;255;255m.[0m[38;2;102;217;239mlog[0m[38;2;255;255;255m([0m[38;2;255;255;255massertedTask[0m[38;2;255;255;255m.[0m[38;2;255;255;255mtitle[0m[38;2;255;255;255m)[0m[38;2;255;255;255m;[0m
|
||||
[38;2;255;255;255m```[0m
|
||||
|
Reference in New Issue
Block a user