TypeScript :使用mock提供数据&as const 的使用&tsconfig.json配置

简介: 本文介绍了如何在项目中使用 Mock 提供数据,包括安装依赖、配置 Vite 和 TypeScript,以及如何使用 `as const`、元组和 tsconfig.json 配置文件。通过这些配置,可以实现更灵活和高效的开发体验。

前言

在现代前端开发中,测试和数据模拟变得越来越重要,尤其是在构建复杂的用户界面时。使用 Mock 数据可以帮助开发者在没有真实后端的情况下进行有效的开发和调试。本文将详细介绍如何在项目中使用 Mock 提供数据,包括安装所需的依赖、配置 Vite 和 TypeScript,以及如何利用 as const 和元组等特性来增强数据的类型安全性。此外,我们还将探讨 tsconfig.json 配置文件的相关设置,以确保项目的最佳实践和灵活性。通过这些配置,您将能够实现更高效的开发体验,轻松应对动态数据的需求,无论您是在开发新功能还是进行单元测试。无论您是刚入门的开发者还是经验丰富的工程师,本指南都将为您提供实用的建议和技巧,帮助您掌握 Mock 数据的使用。

使用mock提供数据

简单使用

下载好所有需要的依赖
注意这个
npm i mockjs vite-plugin-mock@2.9.8 -D
npm i vue-router axios -S

vite.config.ts的配置

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { viteMockServe } from 'vite-plugin-mock'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    // mock服务
    viteMockServe({
      supportTs: false,
      logger: false,
      mockPath: "./src/mock/",
    }),
  ]
})

混入

对象的

// 对象的混入
interface Name{
  name:string
}

interface Age{
  age:number
}
let a:Name={name:"youren"}
let b:Age={age:22}
let obj = Object.assign(a,b)
console.log(obj)

as const 的使用

在TypeScript中,as const 是一种类型断言,但它具有特殊的行为,不仅仅是告诉TypeScript编译器“我确定这个值的类型是这样的”,而是实际地改变了值的类型,使其成为一个只读且每个元素类型都被固定下来的元组(tuple)类型。

当你对一个数组使用 as const 时,TypeScript会创建一个只读的元组类型,其中每个元素的类型都被固定为它们在数组字面量中的类型,并且整个数组的类型也被固定下来,不再是普通的数组类型。这意味着你不能向这个数组添加新的元素,也不能修改现有元素的值(如果元素是可变的)。


将数组里面的元素可以展开使用

// as const 也是类型断言的一种
const args = [8, 5];
// const args: number[]
const angle = Math.atan2(...args); // error! Expected 2 arguments, but got 0 or more.
console.log(angle);
const args = [8, 5] as const;
// const args: readonly [8, 5]
const angle = Math.atan2(...args); // okay
console.log(angle);


元组


我们知道数组中元素的数据类型都一般是相同的(any[] 类型的数组可以不同),如果存储的元素数据类型不同,则需要使用元组。

元组中允许存储不同类型的元素,元组可以作为参数传递给函数。

var tuple_name = [value1,value2,value3,…value n]

元组运算

我们可以使用以下两个函数向元组添加新元素或者删除元素:

push() 向元组添加元素,添加在最后面。

pop() 从元组中移除元素(最后一个),并返回移除的元素。

var a =[10,"Runoob"] 
var [b,c] = a 
console.log( b )    
console.log( c )

tsconfig.json配置

在TS的项目中,TS最终都会被编译JS文件执行,TS编译器在编译TS文件的时候都会先在项目根目录的tsconfig.json文件,根据该文件的配置进行编译,默认情况下,如果该文件没有任何配置,TS编译器会默认编译项目目录下所有的.ts、.tsx、.d.ts文件。实际项目中,会根据自己的需求进行自定义的配置,下面就来详细了解下tsconfig.json的文件配置。


files : 表示编译需要编译的单个文件列表

"files": [
  // 指定编译文件是src目录下的a.ts文件
  "scr/a.ts"
]

 


"include": [
   "scr" // 会编译src目录下的所有文件,包括子目录
   "scr/*" // 只会编译scr一级目录下的文件
  "scr/*/*" // 只会编译scr二级目录下的文件
]

"exclude": [
  // 排除src目录下的lib文件夹下的文件不会编译
  "src/lib"
]

"compileOnSave": true

typeRoots:指定额外的类型声明文件的搜索位置,通常用于指定全局声明文件的位置。

include:指定哪些文件需要参与编译,可以使用通配符匹配多个文件。

exclude:指定哪些文件不参与编译,可以使用通配符排除多个文件



{
  "compilerOptions": {
    "typeRoots": ["./typings"]
  }
}


相关文章
|
3月前
|
JSON API 数据格式
淘宝拍立淘按图搜索API系列,json数据返回
淘宝拍立淘按图搜索API系列通过图像识别技术实现商品搜索功能,调用后返回的JSON数据包含商品标题、图片链接、价格、销量、相似度评分等核心字段,支持分页和详细商品信息展示。以下是该API接口返回的JSON数据示例及详细解析:
|
3月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
3月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
4月前
|
JSON 缓存 自然语言处理
多语言实时数据微店商品详情API:技术实现与JSON数据解析指南
通过以上技术实现与解析指南,开发者可高效构建支持多语言的实时商品详情系统,满足全球化电商场景需求。
|
3月前
|
JSON 中间件 Java
【GoGin】(3)Gin的数据渲染和中间件的使用:数据渲染、返回JSON、浅.JSON()源码、中间件、Next()方法
我们在正常注册中间件时,会打断原有的运行流程,但是你可以在中间件函数内部添加Next()方法,这样可以让原有的运行流程继续执行,当原有的运行流程结束后再回来执行中间件内部的内容。​ c.Writer.WriteHeaderNow()还会写入文本流中。可以看到使用next后,正常执行流程中并没有获得到中间件设置的值。接口还提供了一个可以修改ContentType的方法。判断了传入的状态码是否符合正确的状态码,并返回。在内部封装时,只是标注了不同的render类型。再看一下其他返回的类型;
206 3
|
3月前
|
JSON Java Go
【GoGin】(2)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将,以方便后续业务逻辑的处理。
302 3
|
4月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
4月前
|
JSON 自然语言处理 监控
淘宝关键词搜索与商品详情API接口(JSON数据返回)
通过商品ID(num_iid)获取商品全量信息,包括SKU规格、库存、促销活动、卖家信息、详情页HTML等。
|
4月前
|
JSON 自然语言处理 API
多语言实时数据淘宝商品评论API:技术实现与JSON数据解析指南
淘宝商品评论多语言实时采集需结合官方API与后处理技术实现。建议优先通过地域站点适配获取本地化评论,辅以机器翻译完成多语言转换。在合规前提下,企业可构建多语言评论数据库,支撑全球化市场分析与产品优化。
|
4月前
|
机器学习/深度学习 JSON API
干货,淘宝拍立淘按图搜索,淘宝API(json数据返回)
淘宝拍立淘按图搜索API接口基于深度学习与计算机视觉技术,通过解析用户上传的商品图片,在淘宝商品库中实现毫秒级相似商品匹配,并以JSON格式返回商品标题、图片链接、价格、销量、相似度评分等详细信息。