zoukankan      html  css  js  c++  java
  • typescript 语法总结

    export {}
    
    let name: number = 10
    console.log(name)
    let person: Array<number> = [10]
    console.log(person)
    let age:[number, string] = [10, '99']
    // 枚举
    enum Week  {
      a = 1,
      b = 2
    }
    const enum Colors {
      red, 
      yellow,
      blue
    }
    // !null undefined
    let root: HTMLElement | null = document.getElementById('app');
    root!.style.color = 'red'
    
    // void 没有返回值 空的没有
    function test(params:string): void {
      let actions = 1
      // return actions
    }
    
    // nerver 不会出现的值
    // 会抛出错误导致无法结束
    function crateNever(params:string): never {
      throw new Error("34343");
      
    }
    function sum(params:string): never {
      if (true) {
        console.log('a')
      }
      console.log('end')
      throw new Error("34343");
    
    
    }
    // 包装对象 
    // 自动在基本类型对象上进行切换
    // 基本数据类型上没有方法
    // 2 会在内部做一个装箱操作,包装为对象类型,然后用对象来调用方法
    
    let name2:string = '23423'
    // let name22 = new String(name2)
    // name22.toLocaleLowerCase()
    name2.toLocaleLowerCase()
    
    
    // 联合类型
    let name3: string | number;
    name3 = '23423'
    name3.toLocaleLowerCase()
    name3.toFixed()
     
    
    // 类型断言 as 可以转为想要的类型
    let name5 : string | number // = 3
    (name5 as string).toLocaleLowerCase();
    (name5 as number).toFixed();
    
    // 字面量类型 
    let gender: 'a' | 'b';
    // 不可以再赋值了
    // gender = 'c'
    gender = 'a'
    
    
    // 函数类型
    type getuserType = (params: string, oldname: string) => {name: string}
    let getUser: getuserType = function testname(params:string, oldname: string): {
      'name': string
    } {
      return {name: '234324'}
    }
    
    // 函数的可选参数 默认参数
    function print(name:string, age?: number, sex:string ='women') {
      
    }
    print('324', 2343)
    
    // 剩余参数
    function sums(...number:Array<number>) {
      return number.reduce((acc, item) => acc+item, 0)
    }
    sums(3,42,3)
    
    // 函数重载 限定调用的格式
    let aaa = {}
    // 这两个是用来限定的
    function attr(params: number): void;
    function attr(params: string): void;
    //
    function attr(params: any): void {
      if (typeof params == 'string') {
        
      } else if (typeof params == "number") {
        
      }
    }
    attr('2343')
    attr(2399324)
    // attr(true) //不可以
    
    // ts怎么写箭头函数 
    // 和js是一样的
    // 只是在定义类型的时候不一样
    type delayType = (ms: number) => void
    let delay:delayType = (ms: number) => {
    
    }
    
    //
    namespace a{
    
      class Person {
        myname: string;
        age: number;
        constructor(name: string) {
          // 初始化
          this.myname = name
        }
        get name() {
          return this.myname
        }
        set name(newVal: string) {
          this.myname = newVal.toLocaleLowerCase()
        }
      }
      let a1 = new Person('lifengsan')
      a1.name = 'shishanxiang'
    }
    
    
    // 继承
    
    namespace b {
      class Person {
    
        name: string;
        age: number;
        public color: string;
        private  string;
        protected height: string;
        constructor(name: string, age: number) {
          this.name = name;
          this.age = age
        }
        getName() {
          return this.name
        }
        setName(newName: string) {
          this.name = newName
        }
      }
      class Student extends Person {
    
        // 类属性
        static Type = 'student'
        // sex: string
        constructor(public sex: string, age: number, name: string) {
          super(name, age)
          this.sex = sex
        }
        // 类属性
        static getType = 'hah'
        // 实例属性 在原型上
        getStu() {
          return this.sex
        }
        setStu(newSex: string) {
          this.sex = newSex
        }
      }
      let s = new Student('nan', 10, 'fengliha')
      // Student.Type
      // Student.getType()
    }
    
    // 访问修饰符 public private protected
    // static 静态属性 静态方法

     

  • 相关阅读:
    使用Strust2框架写HelloWorld
    MyEclipse10搭建Strust2开发环境
    MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码
    HTML一些标签注意事项
    Spring常用注解
    VB.NET中Module的概念
    vs2008发布项目失败的解决方法
    Java开发中的一些小技巧
    DNS服务器
    关于在Struts2的Action中使用domain模型接收参数的问题
  • 原文地址:https://www.cnblogs.com/objectjj/p/14874981.html
Copyright © 2011-2022 走看看