当前位置:网站首页>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
边栏推荐
- 5. Use of ly tab plug-in of header component
- Shell script imports stored procedures into the database
- MySQL Replication中的并行复制示例详解
- Feign & Eureka & Zuul & Hystrix 流程
- Global and Chinese polypropylene industry prospect analysis and market demand forecast report Ⓝ 2022 ~ 2027
- 【牛客刷题-SQL大厂面试真题】NO2.用户增长场景(某度信息流)
- 彩色五角星SVG动态网页背景js特效
- Development trend and market demand analysis report of China's high purity copper industry Ⓕ 2022 ~ 2028
- Global and Chinese silicone defoamer production and marketing demand and investment forecast analysis report Ⓨ 2022 ~ 2027
- Social distance (cow infection)
猜你喜欢

软件测试中功能测试流程

ZABBIX 6.0 source code installation and ha configuration

Fiori applications are shared through the enhancement of adaptation project

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

【牛客刷题-SQL大厂面试真题】NO2.用户增长场景(某度信息流)

Anti fraud, refusing to gamble, safe payment | there are many online investment scams, so it's impossible to make money like this

MySQL六十六问,两万字+五十图详解!复习必备

Function test process in software testing

终端识别技术和管理技术

Feign & Eureka & Zuul & Hystrix 流程
随机推荐
股票开户要认识谁?实际上网上开户安全么?
一款Flutter版的记事本
2.15 summary
Idea of [developing killer]
内容审计技术
Build a vc2010 development environment and create a tutorial of "realizing Tetris game in C language"
Flow management technology
SVG钻石样式代码
MySQL statistical bill information (Part 2): data import and query
Introduction to topological sorting
声明一个抽象类Vehicle,它包含私有变量numOfWheels和公共函数Vehicle(int)、Horn()、setNumOfWheels(int)和getNumOfWheels()。子类Mot
Look at the sky at dawn and the clouds at dusk, and enjoy the beautiful pictures
9. Use of better scroll and ref
Report on the current situation and development trend of bidirectional polypropylene composite film industry in the world and China Ⓟ 2022 ~ 2028
Will it affect the original MySQL database to read the data of a MySQL table in full by flick MySQL CDC
Shangtang technology crash: a script written at the time of IPO
leetcode 322. Coin Change 零钱兑换(中等)
The 14th five year plan of China's environmental protection industry and the report on the long-term goals for 2035 Ⓖ 2022 ~ 2028
华为HMS Core携手超图为三维GIS注入新动能
A Fletter version of Notepad