typescript、基础类型、接口、类

148 阅读3分钟

typescript介绍

ts是按照面向对象语言的语法重新封装的js
按照后端语言封装的ES6

基础类型

布尔值、数字、字符串、数组、元组、枚举、anyvoidnullundefinedneverobject

类型定义

  • 布尔型:最简单的数据类型只有简单的true/false值;语法:let isDone: boolean = false;
  • 数字:所有数字都是浮点数。 这些浮点数的类型是 number
let decLiteral: number = 6; //十进制
let hexLiteral: number = 0xf00d; //十六进制
let binaryLiteral: number = 0b1010; //二进制
let octalLiteral: number = 0o744;//八进制
  • 字符串:使用 string表示文本数据类型;语法:let name: string = "bob";
  • 数组:元素类型后面接上 [],表示由此类型元素组成的一个数组;
let list: Array<number> = [1, 2, 3];
  • 元组:元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同
let x: [string, number];
  • 枚举:enum类型是对JavaScript标准数据类型的一个补充
enum Color {Red, Green, Blue} let c: Color = Color.Green;
  • any:我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型,那么我们可以使用 any类型来标记这些变量:
let notSure: any = 4;
notSure = "maybe a string instead"; 
notSure = false;
  • Void:定义方法不允许有返回值
function getname():void{//加上void之后不能使用return
    console.log(names)
}
  • never:never类型表示的是那些永不存在的值的类型;never类型是任何类型的子类型,也可以赋值给任何类型
  • object:object表示非原始类型,也就是除numberstringbooleansymbolnullundefined之外的类型。

接口

TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。
在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。
interface ogj{//定义接口
    age:number
}

//接口:对传过来的对象的某一个值进行检查
function getnum(obj:{age:number}){//规定age必须为数值类型
    console.log(obj)
}
let person={
    names:'lily',
    age:20
}
getnum(person)
  • 在定义接口时可是定义内容是否可不写,在age后面加上?
  • 一些对象属性只能在对象刚刚创建的时候修改其值。 你可以在属性名前用 readonly来指定只读属性:
  • 函数类型:为了使用接口表示函数类型,我们需要给接口定义一个调用签名。 它就像是一个只有参数列表和返回值类型的函数定义。参数列表里的每个参数都需要名字和类型。
函数类型语法
interface fun {
    (a: number, b: string)
}
function show(fun) {
    console
}
function text(a, b) {
    return a + b;
}
show(text(1,'aaa'))
  • 类的类型接口:明确的强制一个类去符合某种契约。
// 类的类型接口
interface datas {
    days: Date
}
class d1 implements dateB {
    days: Date;
    constructor(age: number,names:string){}
}

class Person {
    names: string;//类的成员变量
    constructor(name: string) {//构造函数
        this.names = name;
    }
    showmsg() {
        console.log("hello" + this.names)
    }
}
var p1=new Person("lily");
p1.showmsg()