ts测试代码

是js的超集,TypeScript 通过类型注解提供编译时的静态类型检查。

1.npm install typescript -g
2. 编译为tsc **.ts
3.ts初始化tsc --init 可以在outdir和rootdir中设置输出目录和源文件存放位置,strict:true开启严格模式,使用tsc -p tsconfig.json进行编译
//number
let num: number = 100
num = parseInt('1000')
//string
var names /*string*/ = 'abc'
names = 'cba'
//undefined
let undate: undefined = undefined
//null
let nulldata: null = null
//array
let arr: [number, string] = [1, 'a']
let arr2: Array<number> = [1, 1, 1]
let arr3: string[] = ['a', 'b']
//boolean
let bl: boolean = false
//any
let anydate: any = 1
anydate = 'a'
//never

function neverfun(): never {

  throw new Error()
}
//void 
function main(): void {
  neverfun()
}
//object
let obj: object = []
let obj2: { name: string, age: number } = {
  name: 'zs',
  age: 12,

}
//enum
enum enum1 {
  male = 1,
  female = -1,
  unknow = 0
}
let sex: enum1 = enum1.male
//class
class person {
  username = 'zs'
  age = 12
  constructor(username: string, age: number) {
    this.username = username
    this.age = age

  }
  say(): number {
    console.log('hello world');
    return 1

  }

}
class Xiong extends person {
  profession: string
  readonly maritalStatus = "保密"
  constructor(username: string, age: number, professon: string, public gender: string) {
    super(username, age)
    this.profession = professon


  }
  say() {
    console.log(`我是${this.profession}`);
    return 1

  }
  private sing() {
    console.log('lalalala~')
  }
  protected rap() {
    console.log('jojojojojo~');

  }
  dance() {
    console.log('我跳了一支舞');

  }


}
let xiong = new Xiong('xys', 18, 'itboy', '男')
xiong.say()
// xiong.sing()
// xiong.rap()
xiong.dance()
console.log(xiong.gender);
xiong.gender = '女'
console.log(xiong.gender);
console.log(xiong.maritalStatus);
//存储器
class Car {
  private _name = '共享单车'
  get name() {
    return this._name
  }
  set name(val) {
    if (val.length < 2 || val.length > 5) {
      throw new Error('名字不合法!')
    }
    this._name = val

  }
}
let bus = new Car()
console.log(bus.name);

bus.name = 'bus'
console.log(bus.name);
//接口
interface Point {
  readonly x: number,
  readonly y: number,
  z?: number
  [propName: string]: any
}
interface Point2 {
  x: number
  y: number
  log(): string
}
let poi: Point = {
  x: 10,
  y: 10,
  z: 20
}
let poi2: Point = {
  x: 10,
  y: 10,
}
let poi5: Point = {
  x: 10,
  y: 10,
  dads: 'dasdas'
}

class Poi3 implements Point2 {
  x = 10
  y = 10
  log() {
    console.log(`x:${this.x} y:${this.y}`);

    return `x:${this.x} y:${this.y}`
  }
}
console.log('```````````````');
let poi3 = new Poi3()
poi3.log()

//函数接口
interface add { (a: number, b: number): number }
let numberAdd: add = function (a: number, b: number) {
  return a + b
}
//接口继承接口
//接口继承接口继承接口的多继承
//接口继承类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值