添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1、匿名对象

匿名对象类型是在定义变量时直接使用花括号{},来定义一个对象类型。

const person: { name: string, age: number } = { name: 'John', age: 25 };

2、接口类型

使用接口来定义对象类型,可以使代码更加可读、易于维护

interface Person {
  name: string;
  age: number;
const person: Person = { name: 'John', age: 25 };

3、类别类型

使用类型别名可以为对象类型定义简短、易读的名称。

type Person = {
  name: string;
  age: number;
const person: Person = { name: 'John', age: 25 };

4.快速模仿

还是跟JS一样

let person:{ownName:string,gender:string} = {
    ownName: "Semlinker",
    gender: "Male",
let { ownName, gender } = person;
console.log(ownName)
console.log(gender)

1. 可选属性

顾名思义,不是必须存在的属性。用?标识出来。

interface Person {
  name: string;
  age?: number;
  gender?: string;
let player:{name:string,level?:number} = {name:'a'}

2、只读属性

TypeScript中,我们可以声明一个对象类型中的属性为只读属性,即该属性的值一旦被赋值就不能再被修改。

type Student = {
  readonly name: string;
  age: number;

3. 索引签名

对象类型可以包含索引签名,以支持在动态属性上访问属性值。索引签名允许您在对象类型中定义一个模式,该模式指定应该具有哪些属性和属性类型

interface ExampleObject {
  [key: string]: string;
const exampleObject: ExampleObject = {
  name: "小星星",
  class: "小班",
  // ...

注意这里是[key:xxx]。这里代表exampleObject里的键名是字符串,值也是字符串。

利用这个特性,我们可以创造出类数组对象:

interface ExampleObject {
  [key: number]: string;
const exampleObject: ExampleObject = {
  0: "value1",
  1: "value2",
  // ...

规定只读属性

interface ExampleObject {
  readonly [key: string]: string;

键值是联合类型:

interface ExampleObject {
  [key: string]: string | number;

4.扩展类型

TypeScript中的对象类型是通过接口来定义的,接口可以扩展其他接口,从而实现对象类型的扩展。

interface Person {
  name: string;
  age: number;
interface Student extends Person {
  school: string;
  grade: string;

5.交叉类型(&)

看前面推文。

交叉类型和interface的extends扩展类型的区别

与交叉类型相比,使用interface的extends扩展类型可以实现类似的效果,但是它们的设计思想不同。extends用于在一个类型基础上扩展属性和方法,而交叉类型则是将多个类型合并起来以创建一个新的类型。

6.泛型对象类型

泛型具体的内容可以看我的其他推文。

泛型对象类型可以用于对象属性中的类型声明。例如,以下代码定义了一个对象类型,该对象具有不同类型的属性:

interface List<T> {
  data: T[]
  add: (item: T) => void
const list1: List<string> = {
  data: ['hello', 'world'],
  add(item) {
    this.data.push(item)
const list2: List<number> = {
  data: [1, 2],
  add(item) {
    this.data.push(item)

在上面的代码中,<T>表示泛型对象类型,我们在List<T>中使用了该类型,以声明data属性和add方法的参数和返回类型。

TypeScript中定义对象类型有以下三种方式:匿名对象类型是在定义变量时直接使用花括号{},来定义一个对象类型。例如: 上述代码中定义了一个person变量,它的类型对象,它有两个属性:name和age,其中name属性的类型为字符串,age属性的类型为数字。使用接口来定义对象类型,可以使代码更加可读、易于维护。例如: 上述代码中,定义了一个名为Person的接口,其中包括了两个属性:name和age。然后使用Person接口来定义了一个person变量,它的类型为Person接口。使用类型别名可以
类封装完以后就可以通过使用new关键字和类的构造方法来创建对象,这种对象分为两种:匿名对象与非匿名对象。何为匿名对象,何为非匿名对象呢?举个例子:假如有如下类: package com.heima.vo; public class Student private String name="lisi"; private int age=1
继承的含义 继承:在java中指的是“一个类”可以“继承自”“另一个类”。 "被继承的类"叫做: 父类/超类/基类,"继承其他类的类"叫做:子类。继承后,“子类”中就“拥有”了“父类”中所有的成员(成员变量、成员方法)。 “子类就不需要再定义了”。 继承的好处 提高代码的复用性(减少代码冗余,相同代码重复利用)。 使类与类之间产生了关系。 继承的格式 通过 extends 关键字,可以声明一
今天来聊聊TS中的那些对象类型----TypeScript系列:(三) 对象类型 对象是我们组织数据的基本方式。除了常规的对象类型外,TS还提供了只读数组、元组、属性修饰符、索引签名等知识体系。在前面的章节中,我们已经了解到了对象的基本使用。可以用字面量、interface、type alias来规定一个普通的对象类型。现在是时候了解一下常用的对象属性修饰符、类型拓展、索引签名和内置的特殊对象类型了。 还没有对象吗?那就赶紧new一个吧! 文章目录今天来聊聊TS中的那些对象类型----TypeScrip.
let arr = ['a','b','c',9] arr.forEach(item => { // 这个item是可以推导出来的 他一定是string类型或者number类型 所以可以写 也可以不写 console.log(item)
TypeScript-学不会的ts-3(类与对象)面向对象的七大原则TypeScript 类类的定义创建实例化对象类的继承继承类的方法重写(overwrite)static 关键字instanceof 运算符类属性权限修饰符存取器TypeScript对象对象字面量表示法TypeScript 类型模板对象作为函数参数匿名对象抽象类和抽象方法 面向对象的七大原则 (1)单一原则:一个类只负责一个职责。 (2)里氏替换原则:子类可以在任何地方替换它的父类。 (3)依赖倒置原则:代码要依赖于抽象的类,而不要依赖于
类型断言的作用是使typescript假设已经进行了类型检查 类型断言类似其他语言里的类型转换,但是不进行特殊的类型转换和解构 只在编译阶段起作用,没有运行时的影响 两种形式的语法:尖括号语法与as语法 //尖括号语法 let someValue: any = "this is a string"; let strLength: number = (<string>someValue).length; //as语法 let someValue: any = "this i
javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解。 ( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到...
[Echarts]解决dataZoom当startValue 和 endValue 的值相等(一页只显示一个group bar),页面无法滚动。start和end值设置讲解。思路全讲解! CSDN-Ada助手: 非常感谢您分享关于Array.prototype.map方法的undefined陷阱,这篇博客对于深入理解JavaScript的Array类型非常有帮助。如果您对JavaScript中其他常用的数组操作方法也有深入的研究和经验,不妨考虑编写一篇关于“JavaScript数组操作方法”的技术博文,结合代码深入讲解JavaScript数组的操作技巧和注意事项,例如使用Array.prototype.filter、Array.prototype.reduce等方法的技巧和应用场景,这些都会为广大开发者提供实用的帮助。期待您的下一篇精彩技术博客! 2023年博客之星「城市赛道」年中评选已开启(https://activity.csdn.net/creatActivity?id=10470&utm_source=blog_comment_city ), 博主的原力值在所在城市已经名列前茅,持续创作就有机会成为所在城市的 TOP1 博主(https://bbs.csdn.net/forums/blogstar2023?typeId=3152981&utm_source=blog_comment_city),更有丰厚奖品等你来拿~。 flex:1的容器会被内部元素撑开的解决方法 小林089: 简单粗暴 爱了表情包 如何展开一个多维数组 啪了个猫: 这个试了只能展开嵌套一层的,应该还是要递归才行