快速入门typescript语法2

本文详细讲解了TypeScript中对象类型的不同用法,包括单独使用const定义对象、类型别名、接口的声明与继承,以及元组的特性。同时对比了接口与类型别名的差异,重点介绍了如何通过接口复用和扩展类型定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 对象类型-单独使用

const 对象名: {属性名1?:类型1,属性名2:类型2 } = { 属性名2:值2 }  

const 对象名: {
	属性名1:类型1,
  属性名2:类型2
} = { 属性名1: 值1,属性名2:值2  }

const goodItem:{name: string, price: number, func: ()=>string }  = {
    name: '手机', 
    price: 2000, 
    func:function(){ return '打电话' }
}

2. 对象类型-类型别名

把类型注解封装一下,定义类型 使用 type

// 创建类型别名
type Person = {
  name: string,
  age: number
  sayHi(): void
}
// 使用类型别名作为对象的类型:
let person: Person = {
  name: '小花',
  age: 18
  sayHi() {}
}
function f1 (p: Persion) :void {
  
}

3. 对象类型-接口

当一个对象类型被多次使用时,可以有两种方式来来描述对象的类型,达到复用的目的。

  1. 类型别名, Type

  2. 接口, interface

格式

interface 接口名  {
    属性1: 类型1, 属性2: 类型2,
}

  1. 使用 interface 关键字来声明接口

  2. 接口名称(比如,此处的 Ifn ),可以是任意合法的变量名称,推荐以 I 开头

  3. 声明接口后,直接使用接口名称作为变量的类型

4. 接口和类型的区别

  • 相同点:都可以给对象指定类型

  • 不同点:

    • 接口,只能为对象指定类型。它可以继承。

    • 类型别名,不仅可以为对象指定类型,实际上可以为任意类型指定别

推荐:能使用 type 就是用 type

5. 接口继承

如果两个接口之间有相同的属性或方法,可以将公共的属性或方法抽离出来,通过继承来实现复用

interface Point2D { x: number; y: number }
// 继承 Point2D
interface Point3D extends Point2D {
  z: number
}

6. 元组( Tuple )

元组另一种特殊的数组

  • 它确切地包含多少个元素

  • 特定索引对应的类型

let pos: [number, number] = [123,456]
  1. 元组类型可以确切地标记出有多少个元素,以及每个元素的类型

  2. 该示例中,元素有两个元素,每个元素的类型都是 number

7. 字面量类型

        任意的 JS 字面量(比如,对象、数字等)都可以作为类型使用

let str1 = 'hello 武汉'
const str2 = 'hello TS'
  1. str1 是一个变量(let),它的值可以是任意字符串,所以类型为:string

  2. str2 是一个常量(const),它的值不能变化只能是 'hello 武汉',所以,它的类型为:'hello 武汉'

  • 注意:此处的 'hello TS',就是一个字面量类型,也就是说某个特定的字符串也可以作为 TS 中的类型

// 使用自定义类型:
type Direction = 'up' | 'down' | 'left' | 'right'

function changeDirection(direction: Direction) {
  console.log(direction)
}

// 调用函数时,写上'',就会有类型提示:
changeDirection('up')

字面量类型约定:只能取某些个特定的值。一般和联合类型一起使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值