W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
ArkTS 是 HarmonyOS NEXT 的開發(fā)語言,它基于 TypeScript 并進(jìn)行了擴(kuò)展和優(yōu)化。以下是一些基礎(chǔ)語法知識(shí)點(diǎn)、示例用法及注意事項(xiàng)。
ArkTS 是一種基于 TypeScript 的編程語言,主要用于 HarmonyOS 應(yīng)用的 UI 界面和業(yè)務(wù)邏輯開發(fā)。它在 TypeScript 的基礎(chǔ)上,進(jìn)行了一些針對(duì) HarmonyOS 系統(tǒng)的優(yōu)化和定制。
resources/base/layout
目錄下找到應(yīng)用的布局文件。src/main/js/default
目錄下找到應(yīng)用的 TypeScript 代碼。resources/base
目錄下。config.json
文件中。類型注解是 TypeScript 的核心特性之一,它允許在變量、函數(shù)參數(shù)和函數(shù)返回值上添加類型信息。
let message: string = "Hello, HarmonyOS";
let count: number = 10;
function greet(name: string): string {
return `Hello, ${name}`;
}
let greeting: string = greet("HarmonyOS");
接口是 TypeScript 中定義復(fù)雜類型的一種方式,它可以描述一個(gè)對(duì)象的結(jié)構(gòu)。
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);
類是 TypeScript 中定義對(duì)象類型的一種方式,支持繼承和多態(tài)。
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.
繼承允許一個(gè)類(子類)繼承另一個(gè)類(父類)的屬性和方法。
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
泛型允許在定義函數(shù)、接口或類時(shí)使用類型參數(shù)。
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>("Hello, world!");
console.log(output); // "Hello, world!"
模塊是 TypeScript 中組織代碼的一種方式,支持導(dǎo)入和導(dǎo)出。
// file1.ts
export function sayHello(name: string) {
console.log(`Hello, ${name}`);
}
// file2.ts
import { sayHello } from "./file1";
sayHello("TypeScript");
裝飾器是一種特殊類型的聲明,它可以被附加到類、方法、屬性或參數(shù)上。
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
異步編程允許你編寫非阻塞的代碼。
async function fetchData() {
return await fetch("https://api.example.com/data");
}
fetchData().then(data => console.log(data));
類型別名允許你為類型定義一個(gè)新名稱。
type Name = string;
type Coordinates = { x: number; y: number };
let name: Name = "Alice";
let coordinates: Coordinates = { x: 10, y: 20 };
類型保護(hù)是一種檢查變量類型的方法,可以在編譯時(shí)確保變量具有正確的類型。
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;
}
}
枚舉是一種特殊的類型,它允許你為一組有限的值定義友好的名字。
enum Direction {
Up,
Down,
Left,
Right,
}
function move(direction: Direction): void {
console.log(`Moving in direction: ${Direction[direction]}`);
}
move(Direction.Up);
映射類型允許你根據(jù)現(xiàn)有類型創(chuàng)建新的類型。
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
通過以上示例和注意事項(xiàng),你可以更好地理解和掌握 ArkTS 的基礎(chǔ)語法和使用方式。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: