当前位置: 首页 > article >正文

Harmony OS 开发之ArkTS语言基础-类、接口、继承、模块、泛型

接口

接口是 TypeScript 中定义复杂类型的一种方式,它可以描述一个对象的结构。关键字 interface

interface Car {
  color: string
}
let car: Car = { color: "红色" };
console.log("jarlen","car:"+car.color);

TypeScript支持基于类的面向对象的编程方式,定义类的关键字为class,后面紧跟类名。类描述了所创建的对象共同的属性和方法。关键是class

class Person {
  private _name: string = "";
  public set name(value: string) {
    this._name = value;
  }
  public get name(): string {
    return this._name;
  }
  private _age: number = 12;
  public set age(value: number) {
    this._age = value;
  }
  public get age(): number {
    return this._age;
  }
}

let person:Person = new Person();
person.name="Jarlen"
person.age=6
console.log("jarlen", "car:" + person.name+","+person.age);

继承

继承就是子类继承父类的特征和行为,使得子类具有父类相同的行为。TypeScript中允许使用继承来扩展现有的类,对应的关键字为extends

class Person {
  private _name: string = "";

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

  public set name(value: string) {
    this._name = value;
  }

  public get name(): string {
    return this._name;
  }
}

class Boy extends Person {
  private _sex: string = '男孩';

  constructor(name: string) {
    super(name);
  }

  public set sex(value: string) {
    this._sex = value;
  }

  public get sex(): string {
    return this._sex;
  }
}

let person: Person = new Boy("Jarlen");
console.log("jarlen", "person:" + person.name);

模块

随着应用越来越大,通常要将代码拆分成多个文件,即所谓的模块(module)。模块可以相互加载,并可以使用特殊的指令 export 和 import 来交换功能,从另一个模块调用一个模块的函数。
两个模块之间的关系是通过在文件级别上使用 import 和 export 建立的。模块里面的变量、函数和类等在模块外部是不可见的,除非明确地使用 export 导出它们。类似地,我们必须通过 import 导入其他模块导出的变量、函数、类等。

export class Person{
  private _name: string

  public set name(value: string) {
    this._name = value
  }

  public get name(): string {
    return this._name
  }

  private _age: number

  public set age(value: number) {
    this._age = value
  }

  public get age(): number {
    return this._age
  }

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

import { Person } from './Person';

export class Boy extends Person {
  private _sex: string = '男';

  public set sex(value: string) {
    this._sex = value;
  }

  public get sex(): string {
    return this._sex;
  }

  constructor(name: string, age: number) {
    super(name, age);
  }
}

import { Boy } from '../bean/Boy';
import { Person } from '../bean/Person';

let person:Person = new Boy("Jarlen",12);

泛型

泛型允许在定义函数、接口或类时使用类型参数。

function identity<T>(arg: T): T {
    return arg;
}
 
let output = identity<string>("Hello, jarlen!");
console.log(output);

http://www.kler.cn/news/360992.html

相关文章:

  • Vue Data UI——Vue 3 数据可视化组件库
  • 什么是堡垒机 ?
  • Nodes 节点
  • 时间序列预测(六)——循环神经网络(RNN)
  • 07 实战:视频捕获
  • 【系统架构设计师】专题:嵌入式系统考点梳理
  • 排序(1)
  • git的学习使用(认识工作区,暂存区,版本区。添加文件的方法)
  • RabbitMQ异常
  • PyTorch模型转换ONNX 入门
  • 24下河南秋季教资认定保姆级教程
  • 【YOLO系列】YOLO11原理和深入解析——待完善
  • 《深度学习》Dlib 人脸应用实例 性别年龄预测 案例实现
  • 传输层协议UDP详解
  • 【OpenGauss源码学习 —— (VecSortAgg)】
  • 集合分类及打印的方式
  • SDUT数据结构与算法第四次机测
  • Prometheus 告警
  • MySQL实现主从同步
  • 一个汉字占几个字节、JS中如何获得一个字符串占用多少字节?