TypeScript type 和 interface 的区别
从使用的角度去看,这可能是个老生常谈的问题,就连 TypeScript 官方文档都会给你一个个介绍:
Interfaces vs Types in TypeScript
Documentation - Everyday Types
Learn about difference between Type & Interface in Typescript
具体来说(翻译成中文来说):
从使用的角度去看,这可能是个老生常谈的问题,就连 TypeScript 官方文档都会给你一个个介绍:
Interfaces vs Types in TypeScript
Documentation - Everyday Types
Learn about difference between Type & Interface in Typescript
具体来说(翻译成中文来说):
好久没更新博客了拿着很久之前记的笔记凑个更新吧。
package.json,一个前端项目的归属——万万没想到的是,它有很多学问,因此现在我们就来完整的盘点一下。
之前浪费钱对于个人服务器也开通了 DB 和服务的隔离,现在看来不过是浪费钱,所以想要合并一下,结果发现!Service 服务器上安装好了 MySQL!我!却!把密!码!忘!了!
找了找之后发现还是可以抢救一下的:
mysql --help | grep -A 1 "Default options"
Ubuntu 16 可能在这个位置:/etc/mysql/mysql.conf.d/mysqld.cnf
vim /etc/mysql/mysql.conf.d/mysqld.cnf
在 [mysqld]
的下一行加上:skip-grant-tables
sudo service mysql restart
之后可以不用密码登录了:mysql -u root
修改密码:
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
完成后记得把 skip-grant-tables
删掉(或者注释掉),否则是一个巨大的安全隐患。
在年前面试面试到吐了,感觉到了很多人的焦虑和思维上的误区,也发现了一些市场上普遍存在的问题,内卷化的原因,除了从业人员接触代码的时间越来越早以外,还有一点就是从业者的焦虑导致的,因此今天突然想聊(cou)聊(geng)这(xin)个(la)。
众所周知的是,市面上的 JD 永远会写的非常的牛逼,类似于:「精通 Vue.js」、「有 X 年工作经验」、「有性能优化经验」;如果是后端的话,可能就会写「数据库调优」「高并发」等等。这里就产生了一些解读上的问题:
最新的 MWeb 已经可以支持一个叫 PanDoc & Run Script 的选项了,排除 PanDoc 的部分,他本质就是可以自定义 Shell 的一个功能,最近正好在研究 Typecho 要不要切成某些静态的博客系统的问题,但是苦于静态博客系统不能很好地结合 MWeb,所以还在纠结中,利用这个 Shell 就可以自定义命令,很好的执行我们需要的操作。
本文不含 hexo 主题、配置教程,请注意。
腾讯云的一通电话,让我勤劳了起来,因为他们跟我说:您好,发现您的这个域名不在腾讯云上,如果不改解析的话会掉备案。春节后来核实——众所周知的是 .me 域名已经被拉黑了,掉绑之后再也绑不上,但在国内有备案好商量,所以我只能选择:切。
之前「空之领域」用的一直是 WordPress,但太久没用 PHP 的情况下维护 PHP 全家桶 + 数据迁移实在是太麻烦了,本身 WordPress 这种直接转成 HTML 的文章也不好备份和管理,八百年前我就想写 Markdown 了,只是实在太懒了一直没切,被逼勤劳之下开始干活,选了半天,还是选择了大家都在用的 hexo(此处心路历程不在本文的讨论中)。
另外需要注意到是,评论无了,如果是重评论内容,建议继续用。
本文根据演讲 PPT 口胡输出而成,如有雷同纯属巧合。
开篇,我们先来引入一个问题:什么是前端工程化。
对于我来说,前端工程化大致分为下面的几个内容:
Notification API 只能在 HTTPS 中使用:Using the Notifications API
This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
但是在开发某游戏网站脚本的时候,虽然它用的是 HTTP,但是仍然想用 Notificition 做一下提醒功能,当然,可以降级成过去 800 年的闪 Title 策略:
let shaking = false
setInterval(() => {
if (shaking) document.title = `[Notification] ${word}!!`
else document.title = word
shaking = !shaking
}, 200)
但是实测效果还是不够显眼,最终在和群友的交流之后,发现了 <chrome://flags/> 。
Insecure origins treated as secure
中填写需要开启 Notification API 的域名,重启浏览器,就可以在 HTTP 中使用 Notification API 了。