news 2026/7/7 19:46:04

TypeScript中的interface详细介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TypeScript中的interface详细介绍
interfaceTestTypeItem{name:string;value:string;checked?:boolean;// ? 表示可选属性}
  • interface 是 TypeScript 的一种类型定义方式,用来约束对象的结构。

  • 在这里,TestTypeItem 定义了 Test Type 对象 必须有 name 和 value 两个字符串属性,可选的 checked 属性表示是否被选中。

  • checked? 的问号表示这个属性可以有也可以没有(可选)

2. 为什么要用 interface

1. 类型安全

你在组件里处理 Test Type 的数组时,可以确保每个对象都有 name 和 value,避免写错属性名或类型。

testTypeList:TestTypeItem[]=[{name:'test1',value:'test1'},{name:'test2',value:'test2'}];

如果你写成 { name: ‘test1’, val: ‘test1’ },TypeScript 就会报错,因为 val 不在 TestTypeItem 中。

2. 代码提示 / 智能补全

编辑器可以自动提示 name、value 和 checked,减少错误,提高开发效率。

维护方便
后期如果 Test Type 对象需要加属性,比如 description,只需要改 interface,整个组件的类型检查都会更新。

3. interface 是否要单独放文件

不必须,可以写在同一个组件文件里,尤其是小组件或者仅在本组件使用时。

推荐做法:

  • 小型、局部使用的 interface:放在组件文件顶部。

  • 大型项目或者多个组件共享的 interface:放在单独的 .ts 文件里,例如 models/test-type-item.ts,然后通过 import 使用。

4. 你这个写法的意思

testTypeList:TestTypeItem[]=[{name:'test1',value:'test1'},{name:'test2',value:'test2'}];

声明了一个数组 testTypeList,数组的每个元素都符合 TestTypeItem 的结构。

数组类型 TestTypeItem[] 表示“TestTypeItem 类型的对象数组”。

后续你可以给这些对象动态加 checked 属性来标记选中状态。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 12:16:12

implements OnInit 和基本的类声明的区别是什么

┌─────────────┐ │ constructor │ <-- 注入依赖、初始化简单变量 └─────┬───────┘│▼ ┌─────────────┐ │ ngOnInit() │ <-- 初始化逻辑、访问 Input() └─────┬───────┘│▼ ┌──────────…

作者头像 李华
网站建设 2026/7/7 16:41:39

Flutter 状态管理深度解析:Provider 与 Riverpod 核心原理及实战对比

目录 引言&#xff1a;状态管理为何是 Flutter 开发的核心痛点Provider&#xff1a;基于 InheritedWidget 的经典状态管理方案2.1 Provider 核心原理2.2 Provider 实战&#xff1a;基础 Todo 列表实现Riverpod&#xff1a;Provider 的 “升级版” 核心改进3.1 Riverpod 核心优…

作者头像 李华
网站建设 2026/7/7 17:52:28

30、电气网络综合:近期研究综述

电气网络综合:近期研究综述 1. 电气网络基础概念 1.1 驱动点行为 在一个或多个端口,端口对应着施加电压且有电流流过的一对端子。用 $\boldsymbol{i}$ 和 $\boldsymbol{v}$ 分别表示端口电流向量和相应的电压向量,那么网络的驱动点行为是形如以下微分方程的解集: $$ P…

作者头像 李华
网站建设 2026/7/7 16:29:40

38、多智能体系统二分共识与超奈奎斯特频率跟踪问题解析

多智能体系统二分共识与超奈奎斯特频率跟踪问题解析 多智能体系统二分共识问题 系统描述与基本定义 多智能体系统由 $N$ 个智能体组成,每个智能体的状态 $x_i(t)$($i \in [1, N]$)遵循一阶微分方程: $\dot{x} i(t) = Ax_i(t) + Bu_i(t)$ 其中,$x_i(t) \in R^n$,$u_…

作者头像 李华
网站建设 2026/7/7 14:26:14

1、掌握 Linux Shell 脚本编写基础

掌握 Linux Shell 脚本编写基础 1. 引言 在 Linux 系统中,脚本编写是一项强大的技能,它可以帮助我们自动化各种任务,提高工作效率。本文将深入探讨 Linux 脚本编写的基础知识,包括不同类型的 Linux 外壳、bash 脚本的概念、命令层次结构、文本编辑器的配置、脚本的创建与…

作者头像 李华
网站建设 2026/7/7 14:35:56

14、正则表达式与AWK日志处理全解析

正则表达式与AWK日志处理全解析 1. 定义基本正则表达式(BRE)模式 正则表达式(Regex)是用于匹配和处理文本的强大工具。在定义BRE模式时,我们可以使用以下命令: $ echo "Welcome to shell scripting" | sed -n /shell/p $ echo "Welcome to shell scri…

作者头像 李华