FFYY-7216 4-TS

作者: hahahafffyyy | 来源:发表于2021-12-27 14:42 被阅读0次

    TS基础

    typescript 是 javascript 的超集,支持 ecmascript6标准
    比 javascript 多了一个类型检查

    any unknown never void

    interface

    定义一个类型接口,使用过程中约束

    1. interface object
    interface User {
      name:string
      age?:number
      readonly id:number
    }
    
    1. interface fucntion 函数类型
    interface UserFun {
      (name:string,ange:number): void;
    }
    // 使用
    const myfun:UserFun = (name,age) => {
      console.log('name')
    }
    

    类 class

    class Greeter {
        greeting: string;
        constructor(message: string) {
            this.greeting = message;
        }
        greet() {
            return "Hello, " + this.greeting;
        }
    }
    
    let greeter = new Greeter("world");
    

    我们使用new构造了Greeter类的一个实例。 它会调用之前定义的构造函数,创建一个Greeter类型的新对象,并执行构造函数初始化它

    泛型

    约定类型占位

    //不用泛型:
    function test(arg:number):number{
      return arg;
    }
    // 使用泛型
    fucntion test1<T>(arg:T):T{
      return arg
    }
    

    枚举

    使用枚举我们可以定义一些有名字的数字常量。

    enum Direction {
        Up = 1,
        Down,
        Left,
        Right
    }
    

    迭代器和生成器

    iterators():Iterator
    Generator

    装饰器

    装饰器是一种特殊类型的声明,它能够被附加到类声明,方法, 访问符,属性或参数上。 装饰器使用 @expression这种形式,expression求值后必须为一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入。

    @sealed
    class Greeter {
        greeting: string;
        constructor(message: string) {
            this.greeting = message;
        }
        greet() {
            return "Hello, " + this.greeting;
        }
    }
    

    继承 多态 重载 重写

    面向对象语言的特征

    继承

    class Person{
      move(){
        console.log('yidong')
      }
    }
    class Human extends Person{
      constructor(theName:string){
        super()
      }
    }
    const human = new Human();
    human.move()//
    

    重写

    子类重写父类中的方法,当子类继承父类的时候,调用方法,则会执行子类中的方法,不会执行父类中的方法

    class Person{
      move(dis){
        console.log(dis+'fuqin')
      }
    }
    class Human extends Person{
      constructor(theName:string){
        super()
      }
      move(dis){
        console.log(dis+'children')
      }
    }
    const human = new Human();
    human.move(33)//
    

    重载

    方法参数不同,调用的方法不同

    抽象类&抽象方法

    面试题

    1、什么是什么类型推论
    根据上下文环境推导出来变量的类型叫类型推论。
    2、一下的类型

    let f = null;//f 推论为 any
    

    3、type 和 inferface 的区别
    interface 侧重与描述数据结构,type(类型别名)侧重与描述类型
    不同点:

    1. interface 可以多次定义,合并,type 不行
    2. type 能使用 in关键字,interface 不行

    相关文章

      网友评论

        本文标题:FFYY-7216 4-TS

        本文链接:https://www.haomeiwen.com/subject/nteyqrtx.html