JAVASCRIPT

A collection of 34 posts
TYPESCRIPT

typescript 复用函数或类方法的参数类型

日常开发中,总会需要去封装一些三方库的功能进行使用。 在遇到简单类型的函数使用时,我们直接给我们功能函数添加上和被包装函数相同的类型即可。如: function A(args: number) { return libFun(args: number) } 但若是遇到复杂类型,如何直接去复用或者说继承被包装函数的类型? 1、复用函数类型 function base(a: number, b: number, c: number): number function derived(add: string, ...base: Parameters<typeof base>): number Extending another TypeScript function with additional argumentsIs it possible in TypeScript to define
2 min read
JAVASCRIPT

JS字符串相似性、抄袭 判断

如题所示,为了判断内容相似性,快速过滤重复内容。经过一番学习查找之后,有如下结果: 使用 string-similarity [https://github.com/aceakash/string-similarity] 快速解决问题: npm install string-similarity --save stringSimilarity.compareTwoStrings('healed', 'sealed'); // → 0.8 stringSimilarity.compareTwoStrings('Olive-green table for sale, in extremely good condition.', 'For sale: table in very good condition, olive green in
1 min read
ReactNative

React ReactNative通用异步引入组件解决方案

实际开发中,难免会遇到一个页面会依赖很多组件的,但都是通过接口下发的条件进行动态引入的。 React已经为我们提供了一种异步引入组件的通用方法,上代码: import React, { Suspense } from "react"; const LazyLargeComponent = React.lazy(() => { return new Promise(resolve => setTimeout(resolve, 5 * 1000)).then( () => import("../components/LargeComponent") ); }); export default function LargeComponent() { return ( <div> <Suspense fallback={<div>loading...</div}
1 min read
CSS

chrome 浏览器表单自动填充默认样式 - autofill

Chrome 会在客户登陆过某网站之后, 会自动记住密码. 当你下次再次进入该网站的时候, 可以自由的选择登陆的账号, Chrome 会为你自动填充密码. 而你无需再输入密码 这本身是一个很好的功能, 但是对于开发者而言, 却有一个很让人难受的问题. 当你选择账号密码之后, 你的输入框会变成黄色, 这样自己设置的背景颜色就被覆盖了.
2 min read
JAVASCRIPT

ES6 抽象类示例 以及输入输出类型限制

以下代码主要是实现一个es6抽象类示例,其中包括了AOP切面编程,以及输入输出类型限制。根据该实例,可以很快实现一组策略。 若有更好的方法,请在下方留言(需kx上网)讨论,谢谢。 // 输出类型 class Res { constructor(isSuccess, msg) { this.isSuccess = isSuccess this.msg = msg } } // 输入类型 class InputParams { constructor(flag, data) { this.flag = flag this.data = data } } // 抽象类 class MsgHandler { constructor(params, callback) { if (new.target === MsgHandler) { // 抽象类不可以直接实例化 throw new Error('MsgHandler
1 min read
JAVASCRIPT

关于链式调用的实例 JS

最近被问到这样一个问题,如下: Man('hi').eat('fish').eat('rice').finishSleep(2000) 需求是: * 1、若没有调用finishSleep,则顺序打印 hi , fish , rice * 2、若调用finishSleep, 则顺序打印 2000, hi , fish , rice 鄙人粗略实现如下(欢迎更牛逼的写法,请在下方留言讨论): function Man(str) { Man.prototype.fnArr = [] Man.prototype.fnArr.push(log(str)) Man.prototype.exec() return Man;
1 min read
JAVASCRIPT

做官网常用JS集合

最近做官网,需要配合一些动效,所以Mark一下相关配合的JS库 1、HoverIntent [http://www.jq22.com/jquery-info274] 这是一款非常有用的插件,很多导航在鼠标快速移动经过时触发,造成很多误操作,jQuery延迟操作误插件-hoverIntent将帮助您好解决这个问题,尝试以确定用户的意图,就像一个水晶球,仅与鼠标移动的 !这是对jQuery的悬停方法类似。 2、stellar [https://markdalgleish.com/projects/stellar.js/docs/] 用于制作视差滚动效果 3、WOW.js [http://www.jq22.com/jquery-info1705] 在页面滚动时展现动感的元素动画效果,适用于配合Animate.css使用 https://www.delac.io/wow/docs.html 4、waypoints [http://caibaojian.
1 min read