TypeScript ts基本使用

TS 记录

基本使用不做过多深入,能用就行

创建单文件

// 运行
// demo.ts  tsc demo.ts 转成js node demo.js

数据类型声明 TS 基础类型 文档

// 声明数据类型 没有表明类型的会类型判断,使用TS就按TS的特点来写就不要JS习惯来写
// 以下都是表明类型 格式 变量名:类型, 表明是什么类型的取值就要对应上
let num : number = 10;  // num = "a"; 这样会报错了
let str : string = '字符串';
let bool : boolean = true;
let nul : null = null;
let und : undefined = undefined;
// 联合类型  两个以上用 | 隔开
let id: number | string;
// 任意类型  这个就灵活,没有了类型安全的检测,少用
let anyValue : any = '';
anyValue = 10; // = []; // = {};
console.log(anyValue);
console.log(anyValue as number); // 类型断言

数组

// 数组声明类型 指定类型
let numArr:number[] = [1]; //
// 泛型数组
let arr_n: Array<number> = [1,2];
let arr_n_s: Array<number | string> = [1,2,'a','b'];
// Array<any> 和 any[] 写法不一样,效果一样
let arr_any: Array<any> = [1,2,'a','b'];

对象

// 对象类型 , 如果类型不定给 any 所有类型
let obj : {id:number, name: string} = {
    id: 1,
    name: 'abc'
}
// 类型别名
type Obj_1 = {
    id: number,
    name: string
}
let obj_1 : Obj_1 = {
    id: 1,
    name: 'abc',
}
type Obj_2 = {
    age: number;
}
// 交叉类型 type Obj_1_Obj2 = Obj_1 & Obj_2;
let obj_1_2 : Obj_1 & Obj_2 = {
    id: 1,
    name: 'abc',
    age: 18
}

接口类型

/ 接口 类型
interface User {
    id: number;
    name: string;
    age?: number; // 可选字段
}
// 使用 接口 User类型
let user: User = {
    id: 1,
    name: 'abc'
}

函数

// 函数
// 有返回 就标明返回类型,无返回就 : void 或不写
function fun(x: number, y : number) : number {
    return 1;
}
fun(1,2); // fun(1,'2')这个就会报错

let fun1 = (n: string) : string => {
    return n;
}
let fun2 : (n: string) => string;
fun2 = (n) => {
    return n;
};
// 接口类型作参数
function fun3(user: User) {
    console.log(user);
}
fun3(user)

// 泛型
function res<T>(arg: T) : T {
    return arg;
}
res<User>(user);

TS class 文档

// constructor
// extends abstract
// public private protected readonly static 

class Person {
    id: number;
    name: string;
    constructor(id: number = 1, name: string = 'abc') {
        this.id = id;
        this.name = name  
    }
    getName() {
        console.log(this.name);
    }
}


let person1 = new Person();
person1.getName()

// 继承
// class 继承者 extends 被继承 {}

class UserReq {
    id: number;
    name: string;
    page?: number;
    size?: number;
    constructor() {}
    toJson(params) : UserReq {
        this.id = params.id;
        this.name = params.name;
        this.page = params.page;
        this.size = params.size;
        return this;
    }
}
class UserRes {
    count: number;
    list: Array<UserResList>;
}
class UserResList {
    id: number;
    name: string;
    create_time: string;
}


function userFun(req: UserReq) {
    console.log(req);
    
}
userFun(new UserReq().toJson({id: 1,name: 'abc'}))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值