第20期 — 2019-09-15

在浏览器中阅读

周e信

扫描二维码关注微信公众号

Javascript

typescript3.7新特性和示例🔗

顶层await(Top-level Await)

Javascript已经提议顶层await,不需要在外面包装async,typescript3.7已经支持。

const response = await fetch('http://example.com');

Null Coalescing(??操作符)

const result = firstResult || secondResult;

// ts3.7
const result = firstResult ?? secondResult;

Optional Chaining(?.操作符)

let result = data ? (data.key1 ? data.key1.key2 : undefined) : undefined;

// ts3.7
let result = data?.key1?.key2;

递归类型申明

// 由于JSONValue定义里面又有递归的类型引用,这在3.7之前是不允许的
type JSONValue =
    | string
    | number
    | boolean
    | { [x: string]: JSONValue }
    | Array<JSONValue>;

Tim Perry 编辑 Ka

微软提出静态typescript以支持低端嵌入式设备🔗

最终编译成小巧效率高的ARM Thumb指令机器码,可减少耗电量。

这里有个STS写的游戏。

Bruno Couriol

Dietmar Aumann 编辑 Ka

Node.js

⚠️Sequelize ORM发现sql注入漏洞,已更新布丁🔗

针对此漏洞,Sequelize ORM反应迅速,在3.x,5.x上都发布了补丁版本。

LIRAN TAL 编辑 Ka

使用 GitHub Package Registry 作为 npm 代理,cnpm 之外的选择🔗

在项目文件夹下创建.npmrc

OWNER替换为github账户名或机构名
registry=https://npm.pkg.github.com/OWNER

或者直接加参数 npm i --registry=https://npm.pkg.github.com/OWNER

Alex Mullans 编辑 Ka

Node.js 编辑 Ka

js-fire js object转成命令行工具🔗

如此一个js object

const fire = require('js-fire')

const calculator = {
  double: number => {
    // I double things
    return 2 * number
  },
  add: (n1 = Math.PI, n2) => {
    return n1 + n2
  },
  misc: {
    year: () => '1999',
    brand: () => 'casio',
    hello: name => `hello ${name}`,
  },
}

fire(calculator)

即可发布成如下的命令工具

node calculator.js --help

USAGE:
	node object.js

COMMANDS:

	half  --number=<number>
	double  --number=<number>
	add  --n1=3.141592653589793  --n2=<n2>

	misc
		year
		brand
		hello  --name=<name>

Craig Mulligan 编辑 Ka

microlink.io

前端

让你的 favicon 动起来🔗

原理是使用 javascript 将 favicon 的 href 指向隐藏的 canvas 元素生成的 dataurl 数据(favicon.href = canvas.toDataURL('image/png');)

两个示例

Florian Scholz, Alexis Deveria 编辑 Ka

教程-使用 WatermelonDB 和 ReactNative 创建离线 app🔗

WatermelonDB(西瓜 DB)是基于 SQLite database 的主要用于 React Native 的本地响应式数据库,其目的是,当数据量很大的时候,取代 Mobx 或 Redux 来提升性能。

Dhanraj Acharya 编辑 Ka

Vadim Korobeinikov

投稿

微软依然在大量使用 React Native🔗

除了早就开始使用的 React Native Windows,微软依然在大量使用 React Native 实现手机端 Office 应用,并感觉良好。

Kayce Basques 编辑 Ka

使用 rel=”preconnect”提升页面性能🔗
<!-- 提前建立连接 -->
<link rel="preconnect" href="http://example.com" />
<!-- 提前dns解析 -->
<link rel="dns-prefetch" href="http://example.com" />

Chris Coyier 编辑 Ka

emoji-button表情选择工具🔗

在线demo

emoji-button表情选择工具.md

Joe Attardi 编辑 Ka

Formidable 编辑 Ka

chrome78 开发者工具新特性🔗

Audits 支持与Request BlockingLocal Overrides 联合使用

Request Blocking 可以禁用选定的脚本,Audits 可在这种情况下测试。

Kayce Basques 编辑 Ka

rsuite-国人开发的react组件库🔗

React Suite 是一套 React 组件库,为中后台产品而生。致力于创造出贴心的交互设计,同时为开发者提供了友好的开发体验。支持 TypeScript。

rsuite 编辑 Ka

Josh Kuttler 编辑 Ka

uiw 编辑 Ka

Nick Williams 编辑 Ka

emoji-button表情选择工具🔗
filesize(500);                        // "500 B"
filesize(500, {bits: true});          // "4 Kb"
filesize(265318, {base: 10});         // "265.32 kB"

filesize.js格式化文件大小显示工具.md

Jason Mulligan 编辑 Ka

chrome 增加链接 ref 类型 ugc, sponsored🔗

除之前的 rel="nofollow"(提示本站不负责)之外,增加了

  • rel="sponsored" 提示指向广告
  • rel="ugc" 提示指向用户创建内容

这三类目前都将收入 google 搜索计数,但是元数据不同。

Google 编辑 Ka

Florian Scholz, Alexis Deveria 编辑 Ka

Ruffle 编辑 Ka

数据库

Zhonglu

小窍门-postgres查询结果转json🔗
SELECT row_to_json(q1) FROM
  (SELECT * FROM people LIMIT 1) q1;

编辑 Ka

Netlify发布FaunaDB支持依然免费🔗

FaunaDB是serverless的分布式数据库,自带GraphQL,整合Netlify后,使得开发者使用Netlify很容易的搭建可扩展的web应用。

FaunaDB依然提供免费层,价格见这里

Lewis King Sr. Product Manager at Fauna 编辑 Ka

Nano-SQL支持浏览器,手机的数据库抽象层🔗

支持mysql,redis,mongodb,cassandra。 统一的查询语法(支持upsert)。

Zhonglu

其他

windows上的linux,WSL配置开发环境完全教程🔗

详细的步骤安装WSL(Windows Subsystem For Linux )

WSL安装后,可无缝执行ubuntu程序,反之亦然。ubuntu可直接访问windows文件系统。

然而评论依然说安装麻烦,居然有人说赶不上黑苹果

Burke Holland 编辑 Ka

ozkl 编辑 Ka

广告

storytime.dev 为你的代码讲个故事🔗

可为你的代码增加旁注来解释说明,就像图文插画一样讲解你的代码。

编辑 Ka

vscode-flex布局提示插件🔗

鼠标放到样式中 flex 上就会出现菜单。

支持格式

CSS Less Sass Scss

Dzhavat Ushev 编辑 Ka

扫描二维码关注微信公众号
本期阅读量