当前位置:网站首页>20个实用的 TypeScript 单行代码汇总
20个实用的 TypeScript 单行代码汇总
2022-07-01 13:15:00 【仙凌阁】
在今天的文章中,我将与你分享20有用的 TypeScript 单行代码,这些单行代码可以快速的帮助我们提升开发效率,希望对你有用。
那我们现在开始吧。
01、等待特定的时间量(以毫秒为单位)
const wait = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms));
await wait(1000); // waiting 1 second
02、检查日期是否为工作日
const isWeekday = (d: Date): boolean => d.getDay() % 6 !== ;
isWeekday(new Date(2022, 2, 21)); // -> true
isWeekday(new Date(2021, 2, 20)); // -> false
03、反转字符串
const reverse = (s: string): string => s.split('').reverse().join('');
reverse('elon musk'); // -> 'ksum nole'
04、检查一个数字是否为偶数。
const isEven = (n: number): boolean => n % 2 === ;
isEven(2); // -> true
isEven(3); // -> false
05、大写字符串
const capitalize = (s: string): string => s.charAt().toUpperCase() + s.slice(1);
capitalize('lorem ipsum'); // -> Lorem ipsum
06、检查数组是否为空
const isArrayEmpty = (arr: unknown[]): boolean => Array.isArray(arr) && !arr.length;
isArrayEmpty([]); // -> true
isArrayEmpty([1, 2, 3]); // -> false
07、检查对象/数组是否为空
const isObjectEmpty = (obj: unknown): boolean => obj && Object.keys(obj).length === ;
isObjectEmpty({
}); // -> true
isObjectEmpty({
foo: 'bar' }); // -> false
08、随机生成整数
基于两个参数生成一个随机整数。
const randomInteger = (min: number, max: number): number => Math.floor(Math.random() * (max - min + 1)) + min;
randomInteger(1, 10); // -> 7
09、生成随机布尔值
const randomBoolean = (): boolean => Math.random() >= 0.5;
randomBoolean(); // -> true
10、切换布尔值
切换布尔值,变假为真,变真为假。
const toggleBoolean = (val: boolean): boolean => (val = !val);
toggleBoolean(true); // -> false
11、转换
将字符串转换为带“-”的连字字符串。
const slugify = (str: string): string => str.toLowerCase().replace(/\s+/g, '-').replace(/[^\w-]+/g, '');
slugify('Hello World'); // -> hello-world
12、生成随数组组合
随机生成一组任何类型的数组。
const shuffleArray = <T>(arr: T[]): T[] => arr.sort(() => Math.random() - 0.5);
shuffleArray(<number[]>[1, 2, 3, 4, 5]); // -> [ 4, 5, 2, 1, 3 ]
13、将连字字符串转换为骆峰字符串
const snakeToCamel = (s: string): string => s.toLowerCase().replace(/(_\w)/g, (w) => w.toUpperCase().substring(1));
snakeToCamel('foo_bar'); // -> fooBar
14、随机整数
根据当前时间生成一个随机整数。
const randomInteger = (): number => new Date().getTime();
randomInteger(); // -> 1646617367345
15、随机数字符串
根据当前时间生成随机数字符串。
const randomNumberString = (): string => new Date().getTime() + Math.random().toString(36).slice(2);
randomNumberString(); // -> 1646617484381wml196a8iso
16、将数字转换为字符/字母
const numberToLetter = (value: number): string => String.fromCharCode(94 + value);
numberToLetter(4); // -> b
17、生成随机的十六进制颜色
const randomHexColor = (): string => `#${
Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0')}`;
randomHexColor(); // -> #dc7c40
18、删除字符串的尾部斜杠
const removeTrailingSlash = (value: string): string => value && value.charAt(value.length - 1) === '/' ? value.slice(, -1) : value;
removeTrailingSlash('foo-bar/'); // -> foo-bar
19、获取数组的随机项
const randomItem = <T>(arr: T[]): T => arr[(Math.random() * arr.length) | ];
randomItem(<number[]>[1, 2, 3, 4, 5]); // -> 4
20、将大写字符串转换为小写
const decapitalize = (str: string): string => `${
str.charAt(0).toLowerCase()}${
str.slice(1)}`;
decapitalize('Hello world'); // -> hello world
源码附件已经打包好上传到百度云了,大家自行下载即可~
链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27
提取码: yu27
百度云链接不稳定,随时可能会失效,大家抓紧保存哈。
如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~
开源地址
码云地址:
http://github.crmeb.net/u/defu
Github 地址:
http://github.crmeb.net/u/defu
来源 | https://blog.bitsrc.io/another-10-quick-typescript-one-liners-9f41713c158a
边栏推荐
- C language learning
- 用命令行 给 apk 签名
- Shangtang technology crash: a script written at the time of IPO
- Zabbix 6.0 源码安装以及 HA 配置
- Vs code set code auto save
- Asp. NETCORE uses dynamic to simplify database access
- 7. Icons
- leetcode 322. Coin Change 零钱兑换(中等)
- Vs code setting Click to open a new file window without overwriting the previous window
- Redis explores cache consistency
猜你喜欢

彩色五角星SVG动态网页背景js特效

Computer network interview knowledge points

Meta再放大招!VR新模型登CVPR Oral:像人一样「读」懂语音

Professor Li Zexiang, Hong Kong University of science and technology: I'm wrong. Why is engineering consciousness more important than the best university?

北斗通信模块 北斗gps模块 北斗通信终端DTU

启动solr报错The stack size specified is too small,Specify at least 328k

Spark source code (V) how does dagscheduler taskscheduler cooperate with submitting tasks, and what is the corresponding relationship between application, job, stage, taskset, and task?

游戏公会在去中心化游戏中的未来

mysql统计账单信息(下):数据导入及查询

Svg diamond style code
随机推荐
彩色五角星SVG动态网页背景js特效
新手准备多少钱可以玩期货?农产品可以吗?
Terminal identification technology and management technology
Analysis report on production and marketing demand and investment forecast of global and Chinese diamond powder industry Ⓤ 2022 ~ 2027
arthas使用
c语言学习
1553B环境搭建
MySQL六十六问,两万字+五十图详解!复习必备
Nexus builds NPM dependent private database
A Fletter version of Notepad
Computer network interview knowledge points
Project deployment is not difficult at all!
Asp. NETCORE uses dynamic to simplify database access
I spent tens of thousands of dollars to learn and bring goods: I earned 3 yuan in three days, and the transaction depends on the bill
9. Use of better scroll and ref
In the next stage of digital transformation, digital twin manufacturer Youyi technology announced that it had completed a financing of more than 300 million yuan
JS discolored Lego building blocks
String input function
8 popular recommended style layout
7. Icons