【前端基础知识】TS 类型、接口interface、泛型、Type

本文讲解了TypeScript中的类型系统,包括接口、泛型及其约束,展示了如何定义对象类型、数组类型、联合类型和函数类型。同时探讨了接口接口的使用、泛型的灵活应用及类型交叉和接口的组合。

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

类型的定义

//简单类型
var num: number = 1;
var str: string = 'str';
var bool: boolean = true;
var every: any;//定义为任意类型

//复杂类型--数组
var arrStr: string[] = ['1', '2', '3'];
var arrNum: number[] = [1, 2, 3];
var arrBool: boolean[] = [true, false];
var arrEvery: any[];//定义为任意类型的数组

//联合类型
var data: string | number = 21;
var dataArr: (string | number)[] = [1, 2, '2'];

//函数类型 输入类型 输出类型
function f1(x: number, y: number): number {
    return x + y
}
f1(1, 2)

function f2(x: number, y: number): boolean {
    return x === y
}
f2(1, 2)

Interface

//Object类型 定义接口interface
interface Person {
    name: string;
    age: number;
    sex?: string;//可选属性
    [propName: string]: any;//任意属性
}
var obj: Person = {
    name: 'Dai',
    age: 12,
    sex: '男'
}

泛型

泛型约束

function f4<T>(x: T): number {
    return x.length
}
f4<string>('3')

在这里插入图片描述
如果不对泛型进行约束,就会进行报错

interface NumLength {
    length: number
}
function f4<T extends NumLength>(x: T): number {
    return x.length
}
f4<string>('3')

泛型接口

interface InspectFn {
    <T>(x: T, y: T): T[]
}
let fn6: InspectFn = function f(x, y) {
    return [x, y]
}
fn6<number>(10, 5)

Type

interface extends Type

type User = {
    name: string;
    sex?: string;//可选
    [propName: string]: any;
}
interface People extends User {
    age: number
}
let stu: People = {
    age: 12,
    name: '12',
    no: 213
}

类型交叉

type 与 type 交叉

type Name = { name: string }
type Age = { age: number }

type Student = Name & Age

let student: Student = {
    name: 'Dai',
    age: 12
}
//如果student 中 name 和 age 少一个就会报错

type 与 interface 交叉

type Name = { name: string }
interface Age { age: number }

type Student = Name & Age

let student: Student = {
    name: 'Dai',
    age: 12
}
//如果student 中 name 和 age 少一个就会报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Dai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值