一个开箱即用的变量类型判断库

其中包括了一些日常开发中常用得到的函数工具默认是TypeScript版本,如需在js中使用去掉类型标注即可const opt = Object.prototype.toString; /** * 检查给定对象是否为数组。 */ export function isArray(obj: any): obj is any[] { return opt.call(obj) === '[obje

- 阅读全文 -

Vue3等比例缩放图片组件

今天遇到一个需求,设计需要我无论什么情况都要保持图片比例不变,于是顺手写了个这个组件,组件基于vue3+ts,其实核心代码就是那几句css<template> <div style="position: relative" :style="ratioStr"> <div style="posit

- 阅读全文 -

在vue中定义一个防抖ref

背景在vue的开发过程中,我们通常会使用到ref,但在我们需要对一个频繁的赋值操作做防抖操作时,我们通常只能通过编写一个独立的防抖函数来实现,这样相对会多一些步骤(麻烦一些)。例如我们给一个即时搜索框的input实现防抖输入(即在输入文本n秒之后才触发搜索,避免频繁请求后端接口浪费资源)时,我们不仅不能使用v-model,而且还要定义一个input事件和防抖函数,非常之繁琐。此时,我有一个简洁的方

- 阅读全文 -

Ts中never类型的妙用

妙用一当我们在一个项目中,可能会去改动一个在整个项目中应用很广泛的函数的参数类型,但是可能由于代码量比较庞大,我们不好排查改了之后哪些地方会出现问题,此时我们可以使用never类型来辅助我们的函数,当我们在原有的类型基础上添加了新的类型时,可能会导致else分支中的代码逻辑出现问题,此时我们可以向下面这样写来校验。// 当类型Method只有GET和POST时 type Method = &quo

- 阅读全文 -

koa2+ts如何自动导入并注册路由

┌─/ ├─?routes │ ├─?A.ts 路由配置文件A │ ├─?B.ts 路由配置文件B │ └─?index.ts 路由注册文件 └─?app.ts// app.ts import Koa from "koa"; import { autoRouter } from "./routes&quo

- 阅读全文 -

vue3+ts正常引入图片切使用正常但是爆红

复现提示 Cannot find module '@/assets/images/logo.png' or its corresponding type declarations.ts(2307) 解决方式新建 image.d.ts 文件到根目录在 image.d.ts 文件中写入以下内容,类型可以自由设置declare module '*.svg' declare module '*.png'

- 阅读全文 -

使用nodejs开发一个后台管理系统

前言为什么要开发一套这样的系统?网上资源那么多为什么还要自己造轮子?为什么要选择nodejs?这可能是你们会发出的疑问,但是我还是要这么做,至于为什么,下面听我一一道来...小编还在快马加编中?...技术选型【前端】Vue3ViteNaiveUI【服务端】Koa2.jsnode.js【数据库】sequelizeMySQL(mysql2)【服务器】腾讯云2核4G轻量级应用服务器系统架构...系统栏目

- 阅读全文 -

Typescript高级教程(一)

简介在这篇文章中,我们会讲解一些 Typescript 的高级用法以及一些常见的应用场景,包括:泛型类型别名与接口类型守卫高级类型装饰器泛型泛型是指在定义函数、接口或者类时,使用一个占位符表示某个类型,从而实现代码的重用性和类型的灵活性。泛型函数泛型函数可以接受任意类型的参数,并且可以在函数内部使用泛型来处理参数,例如:function identity<T>(arg: T): T {

- 阅读全文 -

TypeScript 进阶教程(二)

本篇文章将继续介绍 TypeScript 的高级特性,包括泛型、类型推断、模块化、联合类型与交叉类型等内容。泛型泛型是一种在使用时才确定类型的编程技术,在 TypeScript 中广泛应用于函数、类和接口的定义中。泛型可以提高代码的重用性和类型安全性,同时也方便了代码的维护和扩展。下面是一个使用泛型的简单示例:function identity<T>(arg: T): T { re

- 阅读全文 -