Typescript

Typescript 是由微软开发的开源、跨平台的编程语言。

Typescript 需要编译成Javascript代码,才能在浏览器中运行。

使用 npm 安装 typescript

> npm install -g typescript

查看版本

> tsc -V
Version 4.4.2

编译TS文件

> tsc filename.ts

引入其他ts文件

import ./other.ts

初始化TS编译配置文件

tsc --init


Typescript数据类型

布尔类型 boolean

let isOk: boolean = true | false;

数字 number

Typescript 和 Javascript 一样,所有数字都是浮点类型

let age: number = 10; // 十进制
let age: number = 0b1010; // 二进制
let age: number = 0o12; // 八进制
let age: number = 0xa; // 十六进制

字符串 string

可以使用双引号或单引号表示字符串

let name: string = 'miselehe';

数组 array

格式: let 变量名: 数据类型[] = [v1,v2,...]

let arr1: string[] = ["1","a"];
let arr2: Array<number> = [1,2];

元组 

定义后,在使用时值的数据类型、顺序以及数量是不可变的。

let arr3: [string, number] = ['mslh', 20];

枚举 enum

枚举内每个元素都是有编号的,从0开始,依次递增+1。

// 定义枚举
enum Color {
    red,
    green,
    blue
}
// 创建枚举类型变量
let color: Color = Color.red;
console.log(color); // 0
// 使用枚举类型
console.log(Color.green) // 1
console.log(Color[2]); // blue

任何类型 any

表示值可以是任何类型

// 声明时 值为字符串类型
let str: any = 'aaa';
// 重新赋值数字类型
str = 100;

void 类型

通常放在函数定义后,表示此函数没有返回值。

// 定义方法
function hello():void {
    ...
}

object 类型

let userInfo: object = {};

联合类型

function hell(a:string|number) {
    ...
}

类型断言

let x: string | number;
let str: string = x as string;
let num: number = <number>x;

类型推断

根据声明时的值判断类型

let a = 100; // 类型推断是 number
a = '100' //报错
let b; //类型推断是 any 类型

接口 interface

是对对象的状态(属性)和行为(方法)的抽象。

// 定义接口
interface IPerson {
    readonly id: number // 只读属性
    firstName: string
    lastName: string
    hobby?: Array<string>  // 可选属性
}
// 创建某接口类型的对象
const person: IPerson {
    id: 11,
    firstName: "miselehe",
    lastName: "com",
};
console.log(person.id);

接口可以继承其他接口,多个使用逗号分隔

// 实现多个接口
interface ISing {
    sing()
}
// 接口继承
interface SuperUser extends IPerson,ISing {}

类 class

// 创建类定义
class User{
    firstName: string
    lastName: string
    // 构造函数,lastName默认值为"com"
    constructor (f: string, l: string="com") {
        this.firstName = f;
        this.lastName = l;
    }
    // 方法
    sayHi(): string {
        return "Hi ";
    }
}
// 创建类实例
const user = new User("miselehe", "com");

类可以实现接口,多个用逗号分隔

// 定义接口
interface IPerson {
    firstName: string
    lastName: string
    sayHi(): string
}
// 实现多个接口
interface ISing {
    sing()
}
class User2 implements IPerson,ISing {
    firstName: string
    lastName: string
    constructor (f, l) {
        firstName = f;
        lastName = l;
    }
    sayHi(): string {
        return "Hi ";
    }
    sing() {
        return "sing!"
    }
}

修饰符

public 公开的, 默认修饰符,任何地方可以调用

private 私有的,子类中也不可访问

protected 受保护的,但子类中可以访问




转载请指明出处!http://www.miselehe.com/article/view/208