Harmony-(1)-TypeScript-ArkTs

发布于:2024-07-31 ⋅ 阅读:(80) ⋅ 点赞:(0)

1.TypeScript


    1.1变量

布尔值

let isDone: boolean = false;

 数字

let decLiteral: number = 2023;
let binaryLiteral: number = 0b11111100111;
let octalLiteral: number = 0o3747;
let hexLiteral: number = 0x7e7;
console.log('decLiteral is' + decLiteral)

字符串

let name: string = "Jacky";

4. 数组
let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];

5.元组
let x: [string, number];
x = ['hello', 10]

6. 枚举
enum Color {Red, Green, Blue};
let c: Color = Color.Green;

7.
let notSure: unknown = 4;
notSure = 'maybe a string instead';
notSure = false;











1.2.函数

1.void

function test() void {
console.log('This is function is void');
}

2.null 和 undefined
let u: undefined = undefined;
let n: null = null;

3.
let myFavoriteNumber: string | number;;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;


4.if语句
let num: number = 5;
if (num > 0) 
{
  console.log('数字是正数');
}


let num: number = 12;
if (num % 2 == 0)
 {
  console.log('数字是偶数');
} 
else 
{
  console.log('数字是奇数');
}

5.switch语句
var grade: string = 'A';
switch(grade) {
  case 'A': {
    console.log('优');
    break;
  }
  case 'B': {
    console.log('良');
    break;
  }
  case 'C': {
    console.log('及格');
    break;
  }
  case 'D': {
    console.log('不及格');
    break;
  }
  default: {
    console.log('非法输入');
    break;
  }
}

// 1.有名函数:给变量设置为number类型
function add(x: number, y: number): number {
  return x + y;
}

// 2.匿名函数:给变量设置为number类型
let myAdd = function (x: number, y: number): number {
  return x + y;
};

//3.可选参数
function buildName(firstName: string, lastName?: string) {
    if (lastName)
        return firstName + ' ' + lastName;
    else
        return firstName;
}

let result1 = buildName('Bob');
let result2 = buildName('Bob', 'Adams'); 

//4.剩余参数
function getEmployeeName(firstName: string, ...restOfName: string[]) {
  return firstName + ' ' + restOfName.join(' ');
}

let employeeName = getEmployeeName('Joseph', 'Samuel', 'Lucas', 'MacKinzie');


//5.箭头函数

( [param1, parma2,…param n] )=> {
    // 代码块
}
let arrowFun = ( [param1, parma2,…param n] )=> {
    // 代码块
}
arrowFun(param1, parma2,…param n)










1.3.类

class Person {
  private name: string
  private age: number

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  public getPersonInfo(): string {
    return `My name is ${this.name} and age is ${this.age}`;
  }
}

let person1 = new Person('Jacky', 18);
person1.getPersonInfo();


//2.继承

class Employee extends Person {
  private department: string

  constructor(name: string, age: number, department: string) {
    super(name, age);
    this.department = department;
  }

  public getEmployeeInfo(): string {
    return this.getPersonInfo() + ` and work in ${this.department}`;
  }
}

let person2 = new Employee('Tom', 28, 'HuaWei');
person2.getPersonInfo();
person2.getEmployeeInfo();

2.ArkTS


2.1自定义组件的组成

@Entry
@Component
struct ToDoList {...}


在自定义组件内需要使用build方法来进行UI描述。
@Entry
@Component
 struct ToDoList
   ...
   build() {
    ...
  } 
}


@Entry
@Component
struct ToDoList {
  ...
  build() {
    Column(...) {
      Text(...)
        ...
      ForEach(...{
        TodoItem(...)
      },...)
    }
  ...
  }
}

2.2 export 导出的用法

 

//1.导出变量或常量:
export const myVar = 10;

const PI = 3.14;
export { PI };

//2.导出函数:
export function myFunction() {
    console.log('Hello, world!');
}

//3.导出类:
export class MyClass {
    private name: string;

    constructor(name: string) {
        this.name = name;
    }

    greet() {
        console.log(`Hello, ${this.name}!`);
    }
}

//4.导出模块:

// 在当前文件中定义模块
module MyModule {
    export const someVar = 'Hello';
    export function someFunction() {
        console.log('This is a function in MyModule');
    }
}

// 导出整个模块
export { MyModule };


//5.导出默认值

export default function() {
    console.log('This is the default function');
}
import myDefaultFunction from './path-to-file';
myDefaultFunction(); // 调用默认导出的函数


//6.组合导出
// 命名导出
export const myVar = 10;
export function myFunction() {
    console.log('Hello, world!');
}

// 默认导出
export default class MyClass {
    private name: string;

    constructor(name: string) {
        this.name = name;
    }

    greet() {
        console.log(`Hello, ${this.name}!`);
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到