美文网首页
TypeScript03(接口和对象类型)

TypeScript03(接口和对象类型)

作者: BingJS | 来源:发表于2022-03-07 22:16 被阅读0次

对象的类型

在TypeScript中,我们定义对象的方式要用关键字interface(接口),我的理解是使用interface来定义一种约束,让数据的结构满足约束的格式。定义方式如下:

//这样写是会报错的 因为我们在person定义了a,b但是对象里面缺少b属性
//使用接口约束的时候不能多一个属性也不能少一个属性
//必须与接口保持一致
interface Person {
    b:string,
    a:string
}
 
const person:Person  = {
    a:"213"
}
//重名interface  可以合并
interface A{name:string}
interface A{age:number}
var x:A={name:'xx',age:20}

//继承
interface A{
    name:string
}
interface B extends A{
    age:number
}
let obj:B = {
    age:18,
    name:"string"
}

可选属性 使用?操作符

//可选属性的含义是该属性可以不存在
//所以说这样写也是没问题的
interface Person {
    b?:string,
    a:string
}
 
const person:Person  = {
    a:"213"
}

任意属性 [propName: string]

需要注意的是,一旦定义了任意属性,那么确定属性和可选属性的类型都必须是它的类型的子集:

//在这个例子当中我们看到接口中并没有定义C但是并没有报错
//因为我们定义了[propName: string]: any;
//允许添加新的任意属性
interface Person {
    b?:string,
    a:string,
    [propName: string]: any;
}
 
const person:Person  = {
    a:"213",
    c:"123"
}

只读属性 readonly

readonly 只读属性是不允许被赋值的只能读取

//这样写是会报错的
//因为a是只读的不允许重新赋值
interface Person {
    b?: string,
    readonly a: string,
    [propName: string]: any;
}
 
const person: Person = {
    a: "213",
    c: "123"
}
 
person.a = 123

添加函数

interface Person {
    b?: string,
    readonly a: string,
    [propName: string]: any;
    cb():void
}
 
const person: Person = {
    a: "213",
    c: "123",
    cb:()=>{
        console.log(123)
    }
}

相关文章

  • TypeScript03(接口和对象类型)

    对象的类型 在TypeScript中,我们定义对象的方式要用关键字interface(接口),我的理解是使用int...

  • Typescript - 基础(三)

    接口、函数、类 1、接口 作用:可以用来约束函数、对象以及类的结构和类型。 1.1 对象类型的接口 考虑其他情况:...

  • ts接口 interface

    概念:可以用来约束一个函数,对象,以及类的结构和类型 1.对象类型的接口 2.函数类型的接口 3.混合类型的接口(...

  • TypeScript -- 接口

    接口可以用来约束对象,函数,以及类的结构和类型,这是一种代码协作的契约 1,对象类型接口interfaceLi...

  • AIDL详解

    aidl支持基本数据类型和实现了parcelable接口的对象。 ps:实现了parcelable接口的对象的文件...

  • TS基础(五)接口

    TS中接口是用来定义对象的类型。TS中接口和泛型属于十分重要的类型。在面向对象语言中,接口它是对行为的抽象,行动由...

  • 对象

    对象类型 对象类型只有3种形式来描述: 匿名形式 接口形式 类型别名 只读属性和可选属性 索引签名(约束属性名的类型)

  • Java接口与继承

    1.接口 2.对象转型(把右边的当做左边来用,看说得通不) 引用类型与对象类型 接下来讨论引用类型和对象类型不一致...

  • 反射相关类

    1.获取Class类型的对象 Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建...

  • TypeScript接口/数组类型/内置对象/函数类型/类型断言

    接口 interface 在TypeScript中,使用接口来定义对象的类型,对「对象的形状(Shape)」进行描...

网友评论

      本文标题:TypeScript03(接口和对象类型)

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