小编Ada*_*son的帖子

打字稿导入/作为vs import/require?

我正在使用TypeScript和Express/ Node.js.

对于使用模块,TypeScript手册显示以下语法:

import express = require('express');

typescript.d.ts文件也显示:

import * as express from "express";

我还搜索了MSDN博客,但找不到任何东西.

从2016年初开始哪一个更正确?如果有的话,两者之间有什么区别?

哪个是查找有关最新语法的信息的最佳来源,以便将来可以找到这些信息?

javascript node.js express typescript

70
推荐指数
2
解决办法
7万
查看次数

在Java中使用抽象类中的受保护字段

我目前在一个基于Java的大学课程中,对于编码样本,教授正在使用protected字段来进行子类访问.

我问这是不好的做法,并被告知这是正常的.这是真的,为什么不使用setter和getter来抽象方法呢?我认为除非另有要求,否则最好限制尽可能多的信息.

我使用setter和getter测试了abstract父级,它适用于abstract子类的父类.虽然抽象类不能instantiated,他们仍然可以被用来创建对象时,subclassinstantiated因为据我所知.

这是一个简短的例子:

public abstract class Animal {
    protected int height;
}

public class Dog extends Animal {
    public Dog() {
        height = 6;
    }
}

public class Cat extends Animal {
    public Cat() {
        height = 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

与使用相反:

public abstract class Animal {
    private int height;

    public getHeight() {
        return height;
    }

    public setHeight(int height) {
        this.height = height;
    }
}

public class Dog …
Run Code Online (Sandbox Code Playgroud)

java abstract-class encapsulation

6
推荐指数
1
解决办法
3854
查看次数

为什么在使用分号时这个JavaScript不会被解释为代码块?

Chrome版本中,^72如果我运行以下内容JavaScript,则没有错误.

{ prop: p } = { prop: 'prop' }
>> { prop: 'prop' }
Run Code Online (Sandbox Code Playgroud)

因此意外地将代码行解释为表达式语句.

但是,如果我在结尾处使用分号运行相同的代码,它将按预期运行.

{ prop: p } = { prop: 'prop' };
>> Uncaught SyntaxError: Unexpected token =
Run Code Online (Sandbox Code Playgroud)

这是预期的,因为初始{告诉JavaScript引擎它是一个代码块,除非我们用括号消除歧义.

为什么这会出现在分号上但不是没有呢?

javascript syntax google-chrome destructuring object-destructuring

6
推荐指数
1
解决办法
96
查看次数

检测 iOS 自动完成建议按键?

iOS键盘上,顶行有时会有自动完成建议。

keydown当用户单击这些自动完成建议之一时,不会触发该事件。

当用户单击自动完成建议之一时是否可以侦听事件?

javascript frontend keyboard-events web-frontend ios

6
推荐指数
1
解决办法
776
查看次数

如何使用MongoDB更改数组的顺序?

我需要能够增加和减少MongoDB对象中数组元素的位置。

<update>MongoDB API中查看了该API,但找不到任何让我这么做的东西。

我正在尝试使用findOneAndUpdate贯通Mongoose,我知道我试图向上或向下移动的元素的索引。

base64编码图像数组项的示例:

{ 
  images: [
    "img1",
    "img2",
    "img3"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想向上或向下移动“ img2”(但由于无处可去,因此“图像”应该不能向上推)。

如果我想向上推“ img2”,那么结果将是:

{ 
  images: [
    "img2",
    "img1",
    "img3"
  ]
}
Run Code Online (Sandbox Code Playgroud)

通过更改索引,交换或上推/下推来实现此目标都没有关系。

javascript mongoose mongodb node.js express

5
推荐指数
1
解决办法
3234
查看次数

GitLab 代码覆盖率徽章未显示

我为 GitLab 存储库进行了 CI 设置,并且该作业包含以下到 STDOUT 的输出。

=============================== Coverage summary ===============================
Statements   : 94.25% ( 291/333 )
Branches     : 62.29% ( 53/75 )
Functions    : 73.32% ( 170/196 )
Lines        : 94.68% ( 533/569 )
================================================================================
Run Code Online (Sandbox Code Playgroud)

.gitlab-ci.yml该工作的文件中,我有coverage: /^Statements\s*:\s*([^%]+)/. 同样,在我设置的存储库的 CI/CD 设置中^Statements\s*:\s*([^%]+)

然而,代码覆盖率似乎出现Unknown在代码覆盖率徽章上。

regex code-coverage gitlab istanbul nyc

5
推荐指数
1
解决办法
2965
查看次数

预期实例 props 与 React 16 中记忆的 props 相匹配

我正在从react版本升级1516(16.6.1),并且我在控制台中看到了很多这样的警告,我应该担心吗?

Warning: Expected instance props to match memoized props before componentDidUpdate. This is likely due to a bug in React. Please file an issue.

我无法真正提出问题,因为我无法查明它,而且这不是我要共享的代码。我在网上找不到任何关于这个问题的信息。

我应该担心吗?我应该让它溜走吗?

javascript frontend web-frontend reactjs

5
推荐指数
1
解决办法
3644
查看次数

什么时候需要在 TypeScript 中声明返回函数类型?

如果我有以下基本功能typescript可以自动推断返回类型。

function myFunction(x: number, y: number) {
  return x * y;
}
Run Code Online (Sandbox Code Playgroud)

如果typescript由于某些其他调用正在泄漏any而无法推断返回类型,因此它无法进行正确的推断,那么声明返回类型是否仅有用?

function myFunction(x: number, y: number) {
  return x * y || callThatReturnsAny();
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果我知道callThatReturnsAny()返回一个,我想输入它number

function myFunction(x: number, y: number): number {
  return x * y || callThatReturnsAny();
}
Run Code Online (Sandbox Code Playgroud)

虽然最好的解决方案只是输入callThatReturnsAny()以便typescript进行推断?但是在那种情况下,您何时真正应该使用显式返回类型?

javascript static-analysis typing typescript

5
推荐指数
1
解决办法
2082
查看次数

目标WSGI脚本无法作为Django App中的Python模块加载

从我的Apache错误日志.

[Tue Jan 26 00:37:50.840680 2016] [:error] [pid 6522] [client 70.70.241.146:57247] mod_wsgi (pid=6522): Target WSGI script '/var/www/site/public_html/project/apache/wsgi.py' cannot be loaded as Python module.
[Tue Jan 26 00:37:50.840791 2016] [:error] [pid 6522] [client 70.70.241.146:57247] mod_wsgi (pid=6522): Exception occurred processing WSGI script '/var/www/site/public_html/project/apache/wsgi.py'.
[Tue Jan 26 00:37:50.840852 2016] [:error] [pid 6522] [client 70.70.241.146:57247] Traceback (most recent call last):
[Tue Jan 26 00:37:50.841081 2016] [:error] [pid 6522] [client 70.70.241.146:57247]   File "/var/www/site/public_html/project/apache/wsgi.py", line 23, in <module>
[Tue Jan 26 00:37:50.841094 2016] [:error] [pid 6522] …
Run Code Online (Sandbox Code Playgroud)

python django virtualenv

3
推荐指数
1
解决办法
5797
查看次数

使用 @babel/preset-typescript 从环境 TypeScript 模块中使用枚举?

是否可以使用enum正在转译的文件中的an ?babel@babel/preset-typescript

mymodule.d.ts

declare module 'mymodule' {
  export enum Fruit {
    apple = 'Apple',
  }
}
Run Code Online (Sandbox Code Playgroud)

script.js

import { Fruit } from 'mymodule'

assert.equals(Fruit.apple === 'Apple')
Run Code Online (Sandbox Code Playgroud)

Fruit在这种情况下将是未定义的,因为babel不知道环境声明。

除了声明一个单独的枚举/常量文件并直接在两个地方(环境模块和脚本)导入这些文件之外,还有其他方法可以解决这个问题吗?

javascript enums typescript babeljs

3
推荐指数
1
解决办法
889
查看次数

为什么这个微任务在事件循环中的宏任务之前执行?

我的理解是每个宏任务之后处理完整的微任务任务队列。

如果是这种情况,为什么在以下代码片段中setTimeoutPromise微任务之后执行回调JavaScript

console.log('start');

setTimeout(() => {
  console.log("setTimeout");
});

Promise.resolve().then(function() {
  console.log('promise');
});

console.log('end');
Run Code Online (Sandbox Code Playgroud)

这将输出以下内容:

> "start"
> "end"
> "promise"
> "setTimeout"
Run Code Online (Sandbox Code Playgroud)

是因为4ms现代浏览器强加了 ~延迟吗?

来自MDN

在现代浏览器中,当由于回调嵌套(其中嵌套级别至少为一定深度)或在一定数量的连续间隔后触发连续调用时,setTimeout()/setInterval()调用被限制为至少每 4 毫秒一次。

尽管这表明它仅适用于连续回调嵌套。

javascript browser timer event-loop task-queue

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

React SPA 中的锚点或按钮?

假设页面上有一段文本(无论它的样式是否为“传统”链接或按钮),单击该文本后会转到带有新页面/URL 的新页面。但是导航以编程方式发生(例如,通过react-router使用历史 Web API)而不是硬 HTTP 刷新。

在这种情况下,它应该是一个传统的锚链接,带有href诸如#或 按钮之类的属性?

选项 1

<a href="#" onClick={navigateToNextPage}>Link</a>
Run Code Online (Sandbox Code Playgroud)

缺点是你有一个垃圾href属性。您可以删除它,但它不在 Tab 键顺序中,并且不会获得默认链接样式(尽管可以通过一次性样式克服这些问题)。此外,如果您复制链接,它将复制为#不正确的内容,并会被屏幕阅读器错误地解释。

选项2

<button onClick={navigateToNextPage}>Link</a>
Run Code Online (Sandbox Code Playgroud)

这里的缺点是,如果您希望它看起来像传统链接,则需要应用自定义样式。此外,在我看来,它在某些方面确实像一个传统的链接。但这对屏幕阅读器来说会更好。

html javascript accessibility reactjs react-router

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

如何判断 Rails 异常将呈现哪个错误状态代码?

有没有办法告诉rails 将在生产中为特定错误代码(例如ActionController::ParameterMissing)呈现哪个错误代码?

ruby error-handling ruby-on-rails

0
推荐指数
1
解决办法
653
查看次数