首页 > 其他分享 >HarmonyOS NEXT 开发之ArkTS基础入门

HarmonyOS NEXT 开发之ArkTS基础入门

时间:2024-10-10 09:45:39浏览次数:12  
标签:ArkTS TypeScript console log NEXT HarmonyOS let name

ArkTS 是 HarmonyOS NEXT 的开发语言,它基于 TypeScript 并进行了扩展和优化。以下是一些基础语法知识点、示例用法及注意事项。

一、ArkTS 简介

ArkTS 是一种基于 TypeScript 的编程语言,主要用于 HarmonyOS 应用的 UI 界面和业务逻辑开发。它在 TypeScript 的基础上,进行了一些针对 HarmonyOS 系统的优化和定制。

二、创建 ArkTS 项目

  1. 打开 DevEco Studio:点击 File -> New -> Project,选择适合的模板作为项目类型。
  2. 输入项目名称和包名:然后点击 Next。
  3. 完成项目创建:点击 Finish,DevEco Studio 将自动创建一个 ArkTS 项目。

三、编写 ArkTS 代码

  1. 编写 UI 界面:ArkTS 项目的 UI 界面使用 XML 文件定义,可以在 resources/base/layout 目录下找到应用的布局文件。
  2. 编写业务逻辑:ArkTS 项目的业务逻辑代码使用 TypeScript 编写,可以在 src/main/js/default 目录下找到应用的 TypeScript 代码。
  3. 添加资源文件:ArkTS 项目的图片、字符串等资源文件存放在 resources/base 目录下。
  4. 配置文件:ArkTS 项目的配置信息存放在 config.json 文件中。

四、ArkTS 关键语法和使用示例

1. 类型注解

类型注解是 TypeScript 的核心特性之一,它允许在变量、函数参数和函数返回值上添加类型信息。

let message: string = "Hello, HarmonyOS";
let count: number = 10;
function greet(name: string): string {
    return `Hello, ${name}`;
}
let greeting: string = greet("HarmonyOS");
2. 接口

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

interface Person {
    name: string;
    age: number;
}
function showPersonInfo(person: Person) {
    console.log(`Name: ${person.name}, Age: ${person.age}`);
}
let person: Person = { name: "John", age: 30 };
showPersonInfo(person);
3. 类

类是 TypeScript 中定义对象类型的一种方式,支持继承和多态。

class Animal {
    constructor(public name: string) {}
    speak() {
        console.log(`${this.name} makes a noise.`);
    }
}

class Dog extends Animal {
    speak() {
        console.log(`${this.name} barks.`);
    }
}

let dog = new Dog("Bingo");
dog.speak(); // Bingo barks.
4. 继承

继承允许一个类(子类)继承另一个类(父类)的属性和方法。

class Base {
    commonMethod() {
        console.log("Common Method");
    }
}

class Derived extends Base {
    derivedMethod() {
        console.log("Derived Method");
    }
}

let derived = new Derived();
derived.commonMethod(); // Common Method
derived.derivedMethod(); // Derived Method
5. 泛型

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

function identity<T>(arg: T): T {
    return arg;
}

let output = identity<string>("Hello, world!");
console.log(output); // "Hello, world!"
6. 模块

模块是 TypeScript 中组织代码的一种方式,支持导入和导出。

// file1.ts
export function sayHello(name: string) {
    console.log(`Hello, ${name}`);
}

// file2.ts
import { sayHello } from "./file1";
sayHello("TypeScript");
7. 装饰器

装饰器是一种特殊类型的声明,它可以被附加到类、方法、属性或参数上。

function log(target: any, propertyKey: string, descriptor: PropertyDescriptor) {
    console.log(`Property ${propertyKey} is being called`);
}

class Person {
    @log
    name() {
        return "John";
    }
}

let person = new Person();
person.name(); // Property name is being called
8. 异步编程

异步编程允许你编写非阻塞的代码。

async function fetchData() {
    return await fetch("https://api.example.com/data");
}

fetchData().then(data => console.log(data));
9. 类型别名

类型别名允许你为类型定义一个新名称。

type Name = string;
type Coordinates = { x: number; y: number };

let name: Name = "Alice";
let coordinates: Coordinates = { x: 10, y: 20 };
10. 类型保护

类型保护是一种检查变量类型的方法,可以在编译时确保变量具有正确的类型。

type Shape = Circle | Square;
function getArea(shape: Shape): number {
    if (shape instanceof Circle) {
        return Math.PI * shape.radius ** 2;
    } else {
        return shape.width * shape.height;
    }
}
11. 枚举

枚举是一种特殊的类型,它允许你为一组有限的值定义友好的名字。

enum Direction {
    Up,
    Down,
    Left,
    Right,
}

function move(direction: Direction): void {
    console.log(`Moving in direction: ${Direction[direction]}`);
}
move(Direction.Up);
12. 映射类型

映射类型允许你根据现有类型创建新的类型。

type ReadonlyPoint = Readonly<Point>;
let readonlyPoint: ReadonlyPoint = { x: 10, y: 20 };
readonlyPoint.x = 30; // Error: Cannot assign to 'x' because it is a read-only property

五、注意事项

  1. 类型检查:ArkTS 在编译时进行类型检查,可以在代码运行前发现和修复错误。
  2. IDE 支持:由于有了类型信息,IDE 可以提供更好的自动完成、导航和重构功能。
  3. 模块化编程:ArkTS 支持模块化编程,可以将代码组织成模块,以便于管理和维护。

通过以上示例和注意事项,你可以更好地理解和掌握 ArkTS 的基础语法和使用方式。

标签:ArkTS,TypeScript,console,log,NEXT,HarmonyOS,let,name
From: https://www.cnblogs.com/wgjava/p/18454738

相关文章

  • HarmonyOS NEXT公测:今天众人拾柴,明天共享春色
    「10月8日,HarmonyOSNEXT向前迈进一大步——开启公测。」 这款面向万物互联时代的通用操作系统可谓万众瞩目,每一次重大迭代都牵动着整个产业的神经。9月25日的鸿蒙千帆会战誓师大会,合作伙伴沸腾了。百度、腾讯、B站、京东等一众互联网巨头齐聚,开发者正在以积极的姿态参与进......
  • HarmonyOS NEXT 底部选项卡功能
    在HarmonyOSNEXT中使用ArkTS实现一个完整的底部选项卡功能,可以通过以下几个步骤来完成:创建Tabs组件:使用Tabs组件来创建底部导航栏,并通过barPosition属性设置其位置为底部(BarPosition.End)。添加TabContent子组件:在Tabs组件内部,为每个页面创建一个TabContent子组件,这些子组件......
  • 字节预热智能硬件 Ola Friend,预计为智能耳机;鸿蒙 NEXT 公测正式开启,微信邀请内测丨RTE
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代......
  • HarmonyOS NEXT模拟登录页,华为账号一键登录
    一、介绍基于鸿蒙Next模拟账号一键登录,免去账号注册环节二、场景需求1. 用户场景新用户: 需要快速注册并登录,以体验华为的服务。老用户: 希望快速登录,不用每次输入用户名和密码。2. 界面设计Logo和标题: 页面顶部展示华为的Logo及"一键登录"或"华为账号登录"的标题。3.......
  • 【Next.js 入门教程系列】01-基础知识
    原文链接CSDN的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话,给我的库点个star,关注一下吧 基础知识本篇包括以下内容:Next.js是什么创建Next.js项目客户端组件和服务器端组件数据获取缓存静态渲染与动态渲染Next.js​Next.jsisa framework forb......
  • 鸿蒙 Next 实战: 烟花模拟器
    前言通过上一篇文章可以看出,要在鸿蒙应用中实现特别炫的特效还是比较复杂。动画固然重要,但如果在赶工期的情况下,大家都会优先业务,那有没有简单快速的方法呢?有的,也用像Android和iOS里WebView的方式,h5的特效现在是应有尽有,把他嵌入鸿蒙Next应用里就可以,那如何在鸿蒙Next......
  • 鸿蒙 Next 实战: 电子木鱼
    前言正所谓:HelloWord是程序员学任何一门语言的第一个程序实践。这其实也是一个不错的正反馈,那如何让学习鸿蒙Next更有成就感呢?下面就演示一下从零开发一个鸿蒙Next版的电子木鱼,主打就是一个抽象! 实现要点页面布局木鱼点击木鱼音效动画特效自定义弹窗 开始实......
  • 鸿蒙 Next 实战: 环境搭建
    前言作为独立开发者,如果我们错过了传统移动App,和后起小程序的红利,那万物互联+AI的应用开发就得抓住了。虽然个人上架应用平台难易都差不多,但是鸿蒙生态当前正需要广大开发者参与,一旦上架,相比其他平台,流量扶持力度更大,变现能力也更容易。所以,我们可以先开发一些应用占个位置......
  • 鸿蒙应用示例:ArkTS中设置颜色透明度与颜色渐变方案探讨
    /***根据比例混合两个十六进制颜色值。*@paramcolorA第一个颜色的十六进制值,例如红色'#ff0000'。*@paramcolorB第二个颜色的十六进制值,例如黑色'#000000'。*@paramratio混合比例,0表示仅返回colorA,1表示仅返回colorB,介于0和1之间的值会混合两个颜色。......
  • 鸿蒙应用示例:NEXT 中 Map 类型的使用及注意事项
    在JavaScript中,Map对象允许存储任何类型的键和值,提供了键值对的存储功能。在HarmonyOS中,Map的使用基本遵循JavaScript的标准,尤其是要注意set赋值只能用get获取,而索引赋值只能用索引获取。且它们可以同时赋值但遍历的方式又不同。【Map对象的赋值与获取】使用set方法赋值当你需要......