小编ᆼᆺᆼ*_*ᆼᆺᆼ的帖子

使对象变得虚假

是否有可能在JavaScript中覆盖对象上的某些内容,使其显示为"falsy"?

例如,我创建了一个这样的对象:

function BusyState() { 
  var self = this;
  self.isSet = false;
  self.enter = function () { self.isSet = true; };
  self.exit = function () { self.isSet = false; };
};

var isLoading = new BusyState();
isLoading.enter();
Run Code Online (Sandbox Code Playgroud)

我可以这样检查忙:

if (isLoading.isSet) 
Run Code Online (Sandbox Code Playgroud)

但我希望能够将其写为速记:

if (isLoading) 
Run Code Online (Sandbox Code Playgroud)

根据isSet的值,我可以对我的对象做些什么让它看起来真实或虚假吗?

javascript

9
推荐指数
1
解决办法
278
查看次数

TypeScript中的代数数据类型

另一种方式:

如何windowState在TypeScript中键入DOM属性?

已解决(在TypeScript 2中):

declare var windowState: WindowState
const enum WindowState {
  STATE_MAXIMIZED = 1,
  STATE_MINIMIZED = 2,
  STATE_NORMAL = 3,
  STATE_FULLSCREEN = 4
}
...
var windowState = 5 // Type Error, as expected!
Run Code Online (Sandbox Code Playgroud)

原始问题:

我怎么declare一个type在打字稿,以便它描述了一个代数数据类型?这样做的目的是描述现有的API.

当我尝试以下操作时,TypeScript显然会抱怨type is expected:

type Weather = 'sunny' | 'bad'
Run Code Online (Sandbox Code Playgroud)

我有一个想法是使用JavaScript 2015 Symbol,但TypeScript似乎并不知道这些.

另一个想法是使用一个enum,但TypeScript抱怨说member initializer must be constant expression:

const enum Weather {
  sunny = 'sunny',
  bad …
Run Code Online (Sandbox Code Playgroud)

algebraic-data-types typescript

9
推荐指数
1
解决办法
4774
查看次数

为什么...优先失败但是...抛出异常?

为什么会这样

for (let e in null) void e
Run Code Online (Sandbox Code Playgroud)

优雅地失败,但那

for (let e of null) void e
Run Code Online (Sandbox Code Playgroud)

抛出一个TypeError?这不会导致不一致吗?

javascript foreach ecmascript-6

8
推荐指数
1
解决办法
88
查看次数

将功能组件声明为"纯粹"

如何发信号通知React功能组件是"纯粹的",作为React.PureComponent组件类的等价物?

function C(props) { 
  return <var>{props.n}</var> 
}
Run Code Online (Sandbox Code Playgroud)

没有成为一个班级

class C extends React.PureComponent {
  render() {
     return <var>{this.props.n}</var>
  }
}
Run Code Online (Sandbox Code Playgroud)

reactjs

8
推荐指数
4
解决办法
1035
查看次数

Lighthouse 不再使用网站 - 错误 404

我有一个使用 SSL 托管在 AWS(使用 CloudFront 的 S3)上的网站。当我通过 Chrome 执行 Lighthouse 测试时,该测试在除主页之外的任何页面上都不起作用。它针对除性能以外的所有测试返回问号,并返回以下错误:

存在影响 Lighthouse 运行的问题:Lighthouse 无法可靠地加载您请求的页面。确保您正在测试正确的 URL 并且服务器正确响应所有请求。状态码:404。”

这是一个 ReactJS SPA 网站,Lighthouse 确实通过调试工作,但是当我尝试 URL 中的 S3 或 cloudfront 域或我购买的实际域时,它不起作用。它是否曾经工作过我不是 100% 确定,因为我可能只在主页上尝试过它并假设它适用于所有页面。

任何人都可以建议我可以尝试的任何明显的东西(解决或给我更多分析)?我对 AWS 和 React 还很陌生。除此之外,该网站似乎运行良好。

非常感谢 :)

amazon-web-services lighthouse

8
推荐指数
1
解决办法
1595
查看次数

从SVN删除(忘记)文件?

如何从SVN版本控制中删除文件?

  • 它以前是由无意识的人犯下的.
  • 它是一个必需的本地文件,但对每个人都不同,并且不需要在版本控制中.
  • 如果我删除并提交,它将删除所有人的文件.
  • 我无法svn:ignore在回购中添加文件.
  • 如果我远程删除&本地忽略和提交,它会工作,但我无法提交,因为我必须先更新,但如果我更新,该文件将被删除.

我想删除并忽略此文件,因此不需要始终为每个人的每次提交手动删除它,而不是在任何人本地删除它.

此处找到的"解决方案"不起作用:https://stackoverflow.com/a/2038639/579078

svn version-control

7
推荐指数
1
解决办法
6084
查看次数

是否有必要访问AsyncTask中的SQLiteDatabase?

始终从AsyncTask访问SQLiteDatabase是必要的还是好的做法?

从UI线程执行此操作似乎不会导致任何问题,并且实现起来要简单得多.

android android-asynctask android-sqlite

7
推荐指数
1
解决办法
1288
查看次数

require():使用module.exports vs直接分配给"this"

我想知道在使用这两种方法时是否存在任何利弊:

first.js:

this.myFunction = function() {
    return 'herro first';
}
Run Code Online (Sandbox Code Playgroud)

second.js:

module.exports = obj = {};
obj.myFunction = function() {
    return 'herro second';
}
Run Code Online (Sandbox Code Playgroud)

然后将上面两个包括在内并如下使用:

app.js:

var first = require('./first.js');
console.log(first.myFunction());

var second = require('./second');
console.log(second.myFunction());
Run Code Online (Sandbox Code Playgroud)

javascript node.js

7
推荐指数
1
解决办法
110
查看次数

免费发布范围内的 npm 包?

我是否正确地认为,发布一个范围内的 npm 包 ( @foo/bar),即使是作为--access=public,也不是免费的?

它会导致Failed PUT 404( 或402) 错误。这是因为需要一个(付费的)npm 组织吗@foo

更新(2017 年 3 月):Npm 组织现已免费

npm npm-publish

7
推荐指数
1
解决办法
1225
查看次数

使用带有.html条目的webpack

从传统输入开始,如何webpack将Web应用程序转换为输出.html文件.html

这是一个简单的起点:

的index.html

<body>
  <output></output>
  <script src="./main.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

main.js

import React from "react";
document.querySelector("output").innerText = React.version;
Run Code Online (Sandbox Code Playgroud)

webpack.config.js

module.exports = {
  entry: "./index.html",
  output: {
    filename: "output.html"
  },
  module: {
    rules: [
      {test: /^index\.html$/, use: [
        {loader: "extract-loader"},
        {loader: "html-loader", options: {
          attrs: ["script:src"]
        }}
      ]}
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

然而,这导致SyntaxError: Unexpected token import处理main.js时.

webpack webpack-html-loader webpack-file-loader

7
推荐指数
1
解决办法
1038
查看次数