TypeScript使用的简单记录

前言

简单记录一下TypeScript常用的几个类型,做模板用 >.>

模板

  • 变量声明

// 任意类型
let x:any = 1;  
// 字符串类型
let str: string = "Hello World";
// 数字类型
let num: number = 5;
// 布尔类型
let flag: boolean = true;
// 数组类型
let arr: number[] = [1, 2];
let arr2: Array<number> = [1, 2];
// 元组
let list: [string, number];
list = ['hello', 666];
// 枚举
enum Color {Red, Green, Blue}
let c: Color = Color.Blue;
console.log(Color); // { '0': 'Red', '1': 'Green', '2': 'Blue', Red: 0, Green: 1, Blue: 2 }
console.log(c); // 2
// 类型推断
let num = 2; // 赋值后类型推断为 number 类型
let num2; // 若不赋值 类型推断为 any 类型
  • 函数

// 函数

function prt(str: string): void {
    console.log(str)
}

// 传参是参数可以缺少但不能多

// 继承
class Shape {
    Area:number

    constructor(a:number) {
        this.Area = a
    }
}

class Circle extends Shape {
    disp():void {
        console.log("圆的面积:  "+this.Area)
    }
}
// 实现
interface A {
    num:number
    prt(str: string): number
}

class B implements A {
    num:number;
    num2:number;

    constructor(a:number,b:number) {
        this.num = a;
        this.num2 = b;
    }

    prt(str: string) {
        console.log(str);
        return 123;
    }
}
  • 结构体

// 实例一
interface A{
    firstName:string,
    lastName:string,
    say: ()=>string
}

const xxx1: A = {
    firstName: "Tom",
    lastName: "jack",
    say: (): string => {
        return "Hello"
    }
};

// 实例二
interface A{
    age:number
}

interface B extends A{
    name:string
}

const xxx2 = <B>{};
xxx2.age = 27;
xxx2.name = "xpengp";

// 实例三
interface A{
    v1:number
}

interface B{
    v2:number
}

interface C extends A, B{ }

const xxx3: C = {v1: 12, v2: 23};

  • 导出模块

export interface Options {
    name: string,
    age: number,
    address: string
}

const DefaultOptions: Options = {
    name: 'xxx',
    age: 18,
    address: 'China'
};

export function person(options: Options): object {
    return Object.assign(DefaultOptions, options);
}

导入模板

const {person} = require('./models/module');
console.log(person({
    age: 12
}));
  • 上例实现了默认参数的实现,可见极大地方便了代码的重构
  • 同时方便了IDE的使用

总结

  1. 项目中TS文件需要先编译为js再执行
  2. 未完待续。。。
posted @ 2020-04-28 09:25  落叶&不随风  阅读(213)  评论(0编辑  收藏  举报