TypeScript-小技巧第二篇

在这里插入图片描述

1、合理的使用 reduce/filter
需求1:处理这样的对象中的 value 值,拼接成一个字符串。
// 有这样的一个对象,value 可能为空
const obj = {
    a: '1',
    b: '2',
    c: '3',
    d: '',
    e: '5'
    ...
}

// 后端只需要这个对象中的 value 值的逗号拼接 eg: '1,2,3...'

Object.values(obj).filter(Boolean).join(',');

// => '1,2,3,5...'

需求2:需要处理一个 object 中的 values 返回一个新的对象。
// 还是这个 obj 但是现在我们想把 value 的值处理成 number 类型,然后再返回一个key 相同的对象。
let obj = {
    a: '1',
    b: '2',
    c: '3',
    d: '',
    e: '5'
    ...
}

// 预想得的值
obj = {
    a: 1,
    b: 2,
    c: 3,
    d: '',
    e: 5
    ...
}

// 使用 lodash reduce
_.reduce(object, (result, value, key) => result[key] = (Number(value), result)), {})

// zipObject(arr1,arr2) 
_.zipObject(Object.keys(obj),Object.values(obj).map(item=>item = Number(item)))

// demo
_.zipObject(['a', 'b'], [1, 2]);
// => { 'a': 1, 'b': 2 }

// 这里可以 reduce
Object.keys(obj).reduce((result,value,key,arr)=>{
    obj[value] && (obj[value] = Number(obj[value]))
},{})

// 原生的 forEach
// Object.keys(obj).forEach(item=>{
//    obj[item] && (obj[item] = Number(obj[item]))
// },{})

console.log(obj)

2、Ts 定义任意属性
需求3:定义一个 any 的{}
const defaultValues: any = {};
const a = {} as any;
复制代码
接口任意属性
interface Person {
    name: string;
    age?: number;
    [propName: string]: any;
}

// [propName: string]:any 定义任意属性
let tom: Person = {
    name: 'Tom',
    gender: 'male'
};

3、类型定义
类型 + 方括号」表示法
let fibonacci: number[] = [1, 1, 2, 3, 5];

数组泛型
let fibonacci: Array<number> = [1, 1, 2, 3, 5];

用接口表示数组
interface NumberArray {
    [index: number]: number;
}
let fibonacci: NumberArray = [1, 1, 2, 3, 5];

any 在数组中的应用
let list: any[] = ['Xcat Liu', 25, { website: 'http://xcatliu.com' }];

谢谢观看!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue-typescript-import-dts 是一个用于为 Vue.js 项目中的 TypeScript 文件生成类型声明文件的工具。在 Vue.js 项目中使用 TypeScript 进行开发时,我们经常需要为一些第三方库或自定义组件编写类型声明文件,以提供更好的代码提示和类型检查。 使用 vue-typescript-import-dts 工具可以自动分析 TypeScript 文件中的导入语句,并根据导入的模块生成对应的类型声明文件。这样,在使用该模块时,IDE 或编辑器就能提供准确的代码补全和类型检查。 例如,假设我们的项目中使用了一个名为 axios 的第三方库进行网络请求,但是该库并没有提供类型声明文件。我们可以通过 vue-typescript-import-dts 工具,在我们的 TypeScript 文件中导入 axios,并正确配置工具,它将自动为我们生成一个 axios.d.ts 类型声明文件。 具体使用 vue-typescript-import-dts 的步骤如下: 1. 在项目中安装 vue-typescript-import-dts,可以使用 npm 或 yarn 命令来安装。 2. 在 TypeScript 文件中,使用 import 语句导入需要生成类型声明文件的模块。 3. 在项目根目录下创建一个 .vue-typescript-import-dts.json 配置文件,用来配置生成类型声明文件的规则。可以指定生成的声明文件的输出路径、文件名等。 4. 运行 vue-typescript-import-dts 命令,它会自动扫描 TypeScript 文件中的导入语句,并根据配置生成相应的类型声明文件。 这样,在我们编写代码时,IDE 或编辑器就可以准确地为我们提供代码补全和类型检查的功能。这对于提高开发效率和代码质量非常有帮助。 总之,vue-typescript-import-dts 是一个便捷的工具,可以自动为 Vue.js 项目中使用的第三方库或自定义组件生成类型声明文件,提供更好的代码提示和类型检查功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值