// 基础类型
let isOk: boolean = false
/*
    boolean:布尔类型,它只有两个值true和false,通常用于条件判断
*/
if(!isOk) { // !表示非(取反)
    console.log('isOk 为真')
} else {
    console.log('isOk 为假')
}
 
let num: number = 6; // 整数
let floatNum: number = 1.2; // 浮点数
let num1: number = 0b1010; // 十六进制
let num2: number = 0xf00d; // 二进制
let num3: number = 0o744; //八进制
//let bigInt: number = 100n; // BigInt(大整数),ES6引进的类型
let nan: number = NaN; // 非数字
/*
    number: 用于表示整数、浮点等数值及非数字
*/

let str: string = 'Hello'; //单引号
let str1: string = "World"; //双引号
let sayHelloWorld: string = `${str} ${str1} !`; //字符模板(ES6)
console.log(sayHelloWorld);
/*
    string: 用于表示文本数据(单双引号包裹的内容)
*/

let colors: string[] = ['1','2','3','4','5'];
let numbers: Array<number> = [1, 2, 3, 4, 5];
/*
    Array: 数组,是一种用于存储一系列元素的数据结构,可以通过两种方式声明
        1、用过元素类型+[]
        2、使用泛型数据结构 Array<元素类型>
*/

let x: [string, number]
x = ['hello', 1] // 正确写法
//x = [1, 'hello'];// 错误写法
/*
    Tuple(元组): 允许表示一个已知元素数量和类型的数组,且给元素类型不必相同
*/

//let aa: (string | number)[] = [1, 'Heloo']

enum Color {Red, Blue, Green}
let c: Color //默认为 Color.Red
let c1: Color = Color.Green
/*
    Enum(枚举):用于定义一组命名的常量数字,默认情况下为0下表的常量
*/

let notSure: any = 4
notSure = 'Hello Any !'
/*
    Any(任意): 允许对变量的类型进行检查,编译出最终类型(ArkTS 中API9以上不支持该类型)
*/

function UserInfo(): void {
    console.log('这是一个无返回值的函数')
}

function SetNum(): number {
    return 0
}
/*
    Void:用于表示一个无返回值的函数,实际上void类型的变量只能是undefined 或 null
*/

let u: undefined = undefined //未定义(不是空)
let nn: null = null //空
/*
    unll: 空,一般用于清空对象或函数
    undefined: 表示没有定义具体的值
*/

function error(message: string): never {
    throw new Error(message)
}
/*
    Never(永不):表示哪些永远不存在的值的类型
*/

// 1、使用字面量语法构建对象
let person1: {name: string, age: number} = {
    name: 'Tom',
    age: 18
}

// 2、type构建类型为Person1的对象,sex使用?来标记对象属性为可选
type Person1 = {
    name: string;
    age: number;
    sex?: string //表示为可选
}

let user: Person1 = {
    name: 'Tom',
    age: 18
}

let arr: (string | number | boolean | null)[] = ['a', 'aa', 1, 11, false, true, null]
/*
    联合类型:由多个不同类型组成,表示可以是其中任意类型
    ArkTS中的写法:
        let arr: string[] | number[] | boolean[] = []
        let arr: Array(string | number | boolean) = []
*/

interface UserPerson {
    name: string
    age: number
    getInfo(): void
}

let bigBear: UserPerson = {
    name: 'BigBear',
    age: 18,
    getInfo: () => {
        console.log(`${bigBear.name}今年${bigBear.age}岁。`)
    }
}

interface UserSex extends UserPerson {
    sex?: string
}

let aaa: UserSex = {
    name: 'AA',
    age: 10,
    sex: '男',
    getInfo: () => {}
}
/*
    interface: 接口约定,用于定义对象属性的类型
*/

function dataFun<T>(data: T): T {
    return data
}
/*
    <T>: 泛型,无法表示具体以类型,只有被调用时才能确定
*/

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐