首页 > 其他分享 >Type注解对象类型

Type注解对象类型

时间:2024-04-02 12:31:10浏览次数:26  
标签:string 对象 type 类型 interface 注解 Type name

Type注解对象

在TS中对于对象数据的类型注解,除了使用interface之外还可以使用类型别名来进行注解,作用相似

type Person = {
    name: string
    age: number
}

let people: Person = {
    name: '张三',
    age: 16
}

console.log(people)

在这里插入图片描述

Type继承

type同样也可以像interface一样继承,就是type + 交叉类型模拟继承,同样可以实现类型复用

type Father = {
    name: string
    sex: string
    job: string
}

let father: Father = {
    name: '乔治',
    sex: '男',
    job: '苦逼大学生'
}

console.log(father)

type Son = Father & {
    time: string
}

let son: Son = {
    name: 'pig',
    sex: '男',
    job: '敲代码',
    time: '全天',
}

console.log(son)

在这里插入图片描述

疑惑

不知道大家有没有疑惑,是不是感觉interfacetype是不是有些类似呢?

interfacetype对比

相同点
  1. 都能描述对象类型
  2. 都能实现继承,interface使用extends, type配合交叉类型
不同点
  1. type除了能描述对象还可以用来自定义其他类型
  2. 同名的interface会合并(属性取并集,不能出现类型冲突),同名type会报错
使用哪个更好呢?

在注解对象类型的场景下非常相似,推荐大家一律使用type, type更加灵活

思考题

如何将下方的数据集转为type注解
在这里插入图片描述

type Data = {
    title: string
    content: string
}

type response = {
    code: number
    msg: string
    data: Data
}

let message: response = {
    code: 500,
    msg: '成功',
    data: {
        title: '熟练使用',
        content: 'Typescript'
    }
}

console.log(message)

在这里插入图片描述

标签:string,对象,type,类型,interface,注解,Type,name
From: https://blog.csdn.net/scq_king/article/details/137264953

相关文章

  • Item21:当你返回一个对象时,不要试图返回一个引用
    芝士wa2024.4.2Item21链接“无论何时只要你看到一个引用声明,你应该立刻问自己它是什么东西的另一个名字,因为它必定是某物的另一个名字”如果函数返回一个引用,它必须返回某个已存在的对象的引用。一个函数创建一个新对象只有两种方法:在栈上或者在堆上。栈上的生成物是局部......
  • 详解数仓对象设计中序列SEQUENCE原理与应用
    本文分享自华为云社区《GaussDB(DWS)对象设计之序列SEQUENCE原理与使用方法介绍》,作者:VV一笑。1.前言适用版本:8.2.1及以上版本序列SEQUENCE用来生成唯一整数的数据库对象,本文对序列SEQUENCE的使用场景、使用方法及相关函数进行了介绍,并针对序列SEQUENCE在使用中容易遇到的问......
  • Cannot deserialize the current JSON array (e.g. [1,2,3]) into type ‘model’ bec
    错误:CannotdeserializethecurrentJSONarray(e.g.[1,2,3])intotype‘model’becausethetyperequiresaJSONobject(e.g.{“name”:“value”})todeserializecorrectly.TofixthiserroreitherchangetheJSONtoaJSONobject 原因:json或xml字符串中......
  • Java:注解
    Java中的注解(Annotations)是一种用于提供元数据的特殊接口,它们可以被用于给代码添加信息,而这些信息可以在编译时、类加载时或运行时被读取,并且可以影响程序的行为。注解不会直接影响程序的逻辑,但它们可以被编译器或运行时环境用来生成额外的代码、进行类型检查或者在运行时进......
  • EF Core – Owned Entity Types & Complex Types
    前言EFCore8.0推出了ComplexTypes,这篇要来介绍一下。由于它和 OwnedEntityTypes傻傻分不清楚,加上我之前也没有写过 OwnedEntityTypes的文章,所以这篇就一起介绍呗。 OwnedEntityTypesOwnedEntityTypes本质上任然属于一种EntityTypes,只是它有一些潜规则,所......
  • @ComponentScan注解 -【Spring底层原理
    案例已上传GitHub,欢迎star:https://github.com/oneStarLR/spring-annotation一、注解用法1.背景知识什么是组件?组件也是抽象的概念,可以理解为一些符合某种规范的类组合在一起就构成了组件,他可以提供某些特定的功能,但实际他们都是类,只不过有他们特殊的规定。组件......
  • 从基础入门到学穿C++(类和对象篇)【超详细】【一站式速通】
    类和对象C语言是一种面向过程的语言,C++和python、java一样都是一种面向对象的语言。面向对象编程(Object-OrientedProgramming,OOP)和面向过程编程(ProceduralProgramming)是两种不同的编程范式面向对象编程:强调的是将现实世界中的事物抽象成对象,并通过对象之间的交互来实现......
  • Vue3创建空对象方法及推荐
    当使用{}时,我们实际上是在告诉TypeScript将空对象断言为任意类型(any),从而绕过了类型检查。这种做法会失去类型安全性,但在某些特定情况下可能是一种解决方案。以下是示例代码和说明://使用<any>{}将空对象断言为any类型letobj=<any>{};//对空对象进行操作obj.f......
  • 枚举类和注解
    目录一、枚举类的使用1.1、枚举类的理解1.2、自定义枚举类1.3、使用enum关键字定义枚举类1.4、Enum类中的常用方法1.5、使用enum关键字定义的枚举类实现接口二、注解的使用2.1、注解的理解2.2、Annotation的使用示例2.3、如何自定义注解2.4、jdk中4个基本的元注解的使用......
  • 前端开发中Vue3+Typescript使用装饰器出现错误一则
    今天开发公司项目时,使用TS装饰器遇到一个问题。当我写完装饰器代码后进入网页,控制台提示SyntaxError:Invalidorunexpectedtoken两个小时后的排查后发现是tsconfig.json的配置问题。如果tsconfig.json文件中没有指定target选项,TypeScript编译器会默认使用es5作......