index.uts 2.2 KB
Newer Older
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
1 2 3 4 5 6 7
import { log } from "./utils.uts";
type AsyncOptions = {
  type: string;
  success: (res: string) => void;
  fail: (res: string) => void;
  complete: (res: string) => void;
};
8 9 10 11 12 13 14 15 16

type SyntaxResult = {
	name: string
};

type SyncResult = {
	msg: string
}

DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
17 18 19 20 21 22 23 24 25
/**
 * 导出一个属性
 */
export const MAX = 100;

/**
 * 导出一个同步方法
 * @returns
 */
26
export function testSync(msg: string): SyncResult {
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
27 28
  console.log("log test");
  log("log test1");
29 30 31 32 33 34 35 36
  
  const res: SyncResult = {
	  msg: `hello ${msg}`
  }
  return res
  // return {
  //   msg: `hello ${msg}`,
  // };
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
37 38 39 40 41 42 43 44 45 46 47 48
}
/**
 * 导出一个同步方法(触发了数组越界异常)
 */
export function testSyncError() {
  const arr: string[] = [];
  console.log(arr[1]);
}
/**
 * 导出一个带callback的同步方法
 * @param opts
 */
49
export function testSyncWithCallback(opts: AsyncOptions): SyntaxResult {
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
50 51 52 53 54 55
  if (opts.type == "success") {
    opts.success("success");
  } else {
    opts.fail("fail");
  }
  opts.complete("complete");
56 57 58 59 60 61
  
  const res: SyntaxResult = {
	  name: "testSyncWithCallback"
  }
  return res;
  // return { name: "testSyncWithCallback" };
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
62 63 64 65 66
}
/**
 * 导出一个异步方法
 * @returns
 */
67
export async function testAsync(opts: AsyncOptions): Promise<SyntaxResult> {
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
68 69 70 71 72 73
  if (opts.type == "success") {
    opts.success("success");
  } else {
    opts.fail("fail");
  }
  opts.complete("complete");
74 75 76 77 78 79
  
  const res: SyntaxResult = {
  	  name: "testAsync"
  }
  return res;
  // return { name: "testAsync" };
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
}

type TestOptions = {
  name: string;
  callback: (res: string) => void;
};

export class Test {
  id: number;
  name: string;
  static type: string = "Test";
  constructor(id: number, options: TestOptions) {
    this.id = id;
    this.name = options.name;
    options.callback("Test.constructor");
  }
96
  static testClassStaticSyncWithCallback(opts: AsyncOptions): SyntaxResult {
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
97 98
    return testSyncWithCallback(opts);
  }
99
  static async testClassStaticAsync(opts: AsyncOptions): Promise<SyntaxResult> {
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
100 101 102
    const res = await testAsync(opts);
    return res;
  }
103
  testClassSyncWithCallback(opts: AsyncOptions): SyntaxResult {
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
104 105
    return testSyncWithCallback(opts);
  }
106
  async testClassAsync(opts: AsyncOptions): Promise<SyntaxResult> {
DCloud_iOS_XHY's avatar
DCloud_iOS_XHY 已提交
107 108 109 110
    const res = await testAsync(opts);
    return res;
  }
}