Ts初识

Ts

tsc 命令
tsc -h 帮助
tsc --init 创建一个 tsconfig.json file
tsconfig.json 里面可配置
tsc -w 进行监听

相对于js 新增的一些类

元组 tuple 需要声明每个元素的类型的数组,不可增加或减少元素

let t: [string, number,boolean] = ['1', 1, true]
console.log(t)

数组

// 类型声明两种方法  :Array<any>    :number[] 
let myarr:Array<any> = [5]
let arr:number[] = [1,2,3]

枚举类型

enum Color {
  Red = 2, Green, Blue
}
let c: Color = Color.Red // 2

null undefined

console.log(typeof null) // object
console.log(typeof undefined) // undefined

Symbol es6

let sym1 = Symbol('key')
let sym2 = Symbol('key')
console.log(sym1 === sym2) /// false
let obj = {
  [sym1]:'val'
}
console.log(obj[sym1])

Ts 中的函数及类

//  函数需要加一些参数类型及返回值类型  可设置默认值
let mySum = function (x: number = 1, y: number): number {
  return x + y
}

接口与类

// 接口 定义对象的样子
interface Person{
  readonly name: string, // 只读
  age?: number, // 可选
  [propName: string]:any // 索引签名  可定义任意多个属性和类型
}
let p : Person = {
  firstName: 'wang',
  lastName: 'ying',
  name: 'p',
  // age: 18,
  time: 'asd'
}


// 类

class Animal {
  // publis   默认  子类及实例均可访问
  // protected 子类可访问 实例不可
  // private 子类实例均不可访问

  // readonly  只读属性

  // 静态属性  用Animal.staticPro 获取
  static staticPro = 111
  
  public name: string = ''
  private age: number = 18
  public sayName() {
    console.log(this.name, this.age);
  }

  constructor(name: string) {
    this.name = name
  }
  // 使用时在类上直接调用  Animal.isAnimal(xxx)
  static isAnimal(a: any) {
    return a instanceof Animal
  }
  sayHello(): string {
    console.log( this, 'this' )
    return this.name +' hello'
  }
  get animalName() {
    return this.name
  }
  set animalName(name: string){
    this.name = name
  }
}

// 类的继承
class Dog extends Animal{
  constructor(public name: string) {
    super(name)
  }
  // 对父类函数重写
  sayHello():string {
    console.log(this.name);
    return ''
  }
}


// 抽象类 Person2  
// 抽象类 只能声明类, 不可进行实例化, 子类可通过继承实现
abstract class Person{
  public abstract sayHello():void // 抽象方法
  public getProps() { // 非抽象方法
    return 'props'
  }
}

// 继承抽象类
class Teacher extends Person{
  name: string
  constructor(name: string) {
    super()
    this.name = name
  }
  sayHello(): void {
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值