小编Sco*_*tin的帖子

如何在 TypeScript 的 catch 块中输入错误属性?

我有这个代码:

import axios, {AxiosError} from "axios";

try {
  some request
} catch(err:AxiosError) {
 console.log(error.response) // Doesn't work
 console.log(error.response?.data?.message) // Doesn't work
 if(error.response?.data?.statusCode === 401) {
   logout()
 }
}
Run Code Online (Sandbox Code Playgroud)

由于 TypeScript,我无法检查里面的状态代码。如何在不诉诸类型的情况下正确描述错误类型any?我找不到人们如何在 TypeScript 中处理这个错误,也许我遗漏了一些东西。

typescript reactjs

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

JavaScript - babel-preset-env没有为IE11转换箭头功能

我很难配置Babel来转换IE11可以理解的代码,特别是箭头函数.npx webpack --mode=development使用我的配置运行不会转换我的代码中的箭头函数:在eval()生成的代码中的语句中,我可以看到所有实例都未转换.

此问题中引用的控制台输出不同,我的"使用目标"或"使用预设"中没有提及.这是否与使用有关npx webpack而不是npm run build我不知道.

这是我的Babel部分package.json:

{
  // name, version etc. snipped
  "devDependencies": {
    "@babel/core": "^7.1.2",
    "@babel/plugin-transform-async-to-generator": "^7.1.0",
    "@babel/plugin-transform-es2015-arrow-functions": "^6.22.0",
    "@babel/plugin-transform-es2015-modules-commonjs": "^6.26.2",
    "@babel/preset-env": "^7.1.0",
    "ajv": "^6.5.4",
    "copy-webpack-plugin": "^4.5.2",
    "eslint-plugin-jest": "^21.24.1",
    "jest": "^23.6.0",
    "jest-dom": "^2.0.4",
    "webpack": "^4.20.2",
    "webpack-cli": "^3.1.2"
  },
  "babel": {
    "presets": [
      [
        "@babel/preset-env",
        {
          "targets": {
            "ie": "11"
          }
        }
      ]
    ],
    "env": {
      "development": {
        "plugins": [
          "transform-es2015-arrow-functions",
          "transform-es2015-modules-commonjs"
        ]
      },
      "test": { …
Run Code Online (Sandbox Code Playgroud)

javascript webpack babeljs

9
推荐指数
3
解决办法
4568
查看次数

在 Perl 正则表达式和 grep 中否定括号内的字符类

我试图解决一个非常简单的问题 - 在数组中查找仅包含某些字母的字符串。但是,我在正则表达式的行为中遇到了一些问题和/或grep我不明白的问题。

#!/usr/bin/perl

use warnings;
use strict;

my @test_data = qw(ant bee cat dodo elephant frog giraffe horse);

# Words wanted include these letters only. Hardcoded for demonstration purposes
my @wanted_letters = qw/a c d i n o t/;

# Subtract those letters from the alphabet to find the letters to eliminate.
# Interpolate array into a negated bracketed character class, positive grep
# against a list of the lowercase alphabet: fine, gets befghjklmpqrsuvwxyz.
my @unwanted_letters = …
Run Code Online (Sandbox Code Playgroud)

regex arrays perl

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

在单页 Svelte 应用程序中设置页面标题的最佳位置/生命周期方法

我开始使用 Svelte 并构建一个单页应用程序(使用page.js作为路由器)。我以为我有一个单独的组件来生成<svelte:head>块,当每个组件安装时,它会将页面标题写入存储,然后由头部组件读取。它部分有效 - 当我点击不同页面时,页面标题会更新。但是,如果我返回浏览器的历史记录,标题不会随着页面而改变。如果我然后重新加载页面,它确实会改变。所以也许onMount()不是正确的生命周期方法。我可以采取什么方法来处理历史状态导航?

这是我的应用程序归结为一个最小的例子。

// index.js

import page from 'page'

import App from './views/App.svelte'

const app = new App({
    target: document.body,
    props: {
        route: null,
    },
})

function one() {
    app.$set({ route: 'one' })
}

function two() {
    app.$set({ route: 'two' })
}

page('/one', one)
page('/two', two)
page()

// App.svelte

<script>
    import One  from './One.svelte'
    import Two  from './Two.svelte'
    import Head from '../parts/Head.svelte'
    import Home from './Home.svelte'

    export let route
</script>

<Head …
Run Code Online (Sandbox Code Playgroud)

javascript single-page-application svelte

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

使用覆盖在 ESLint 配置中设置文件扩展名

我正在尝试通过overrides在配置中设置来指定 ESLint 应检查的文件扩展名,而不是需要使用--ext命令行标志。该文件说:

\n
\n

默认情况下,ESLint 会检查文件以及与配置条目*.js匹配的文件。overrides

\n
\n

的文档overrides说glob 模式files可以沿着 "src/*.js"or的行"**/*.js",并且这些与 ESLint 配置文件的基本目录相关。这些选项都不能让我使 ESLint 进程文件超出默认值*.js(在我的例子中*.jsx)。

\n

这是我运行 ESLint 时的输出--ext

\n
scott@dev /home/scott/project (main)\n$ npx eslint --ext .js,.jsx ./src\n\n/home/scott/project/src/file.jsx\n  1:1  warning  Unexpected console statement  no-console\n\n\xe2\x9c\x96 1 problem (0 errors, 1 warning)\n
Run Code Online (Sandbox Code Playgroud)\n

正如预期的那样,它会产生警告。但如果没有--ext,ESLint 不会产生任何输出。

\n

目录结构:

\n
/home/scott/project/\n  .eslintrc.js\n  src/\n      file.jsx\n
Run Code Online (Sandbox Code Playgroud)\n

.eslintrc.js

\n
scott@dev …
Run Code Online (Sandbox Code Playgroud)

javascript eslint

5
推荐指数
0
解决办法
4817
查看次数

Karma的基本目录位置

在使用业力时无法为我的测试加载模板装置.为了简化,

去c:\

创建了一个1.txt文本文件.

制作一个简单的业力初始化文件包含:

basePath: '',
Run Code Online (Sandbox Code Playgroud)

使用以下方式启动业力

C:\> karma start .\sample.conf.js
Run Code Online (Sandbox Code Playgroud)

Chrome开放时间:

http://localhost:9876/?id=49209467
Run Code Online (Sandbox Code Playgroud)

然后我尝试导航到:

http://localhost:9876/base/1.txt
Run Code Online (Sandbox Code Playgroud)

但是在浏览器中收到了"NOT FOUND"错误消息,以及来自karma的消息:

WARN [web-server]: 404: /base/1.txt
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

unit-testing karma-runner karma-jasmine

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

PostgreSQL - 使用 case 语句测试整数时返回字符串

从表中选择一些数据时,我想使用CASE语句在出现空值时返回“n/a”。

这是我正在查看的表格的简化但具有代表性的版本:

CREATE TABLE test (
    id INTEGER NOT NULL,
    paid_cents INTEGER NULL DEFAULT NULL,
    PRIMARY KEY (id)
);

INSERT INTO test VALUES (1, 100);
INSERT INTO test VALUES (2, NULL);
INSERT INTO test VALUES (3, 0);
Run Code Online (Sandbox Code Playgroud)

我希望能够使用以下查询:

SELECT CASE
    WHEN paid_cents IS NULL THEN 'n/a'
    ELSE paid_cents / 100
    END AS "dollar amount"
FROM test
Run Code Online (Sandbox Code Playgroud)

这个小提琴的行为完全符合我的预期。但是在我的真实数据库(PostgreSQL 9.4)上尝试这个会导致错误:

错误:整数的无效输入语法:“n/a”第
2 行:WHENpaid_cents 为 NULL THEN 'n/a'

似乎 Postgres 期望在测试整数时返回一个整数(并且将 'n/a' 更改为数字确实有效)。我猜我需要去CAST某个地方?

sql postgresql conditional case

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

pandas - 根据另一列中的每个唯一值计算DataFrame中值的出现次数

假设我有一个DataFrame:

    term      score
0   this          0
1   that          1
2   the other     3
3   something     2
4   anything      1
5   the other     2
6   that          2
7   this          0
8   something     1
Run Code Online (Sandbox Code Playgroud)

我如何通过score列中的唯一值来计算term列中的实例?产生如下结果:

    term      score 0     score 1     score 2     score 3
0   this            2           0           0           0
1   that            0           1           1           0
2   the other       0           0           1           1
3   something       0           1           1           0
4   anything        0           1           0           0
Run Code Online (Sandbox Code Playgroud)

我在这里读到的相关问题包括Python Pandas计算和总结特定条件, …

python pivot-table dataframe pandas

3
推荐指数
2
解决办法
879
查看次数

JavaScript - 无法在 Jest 测试中获取 jsdom 文档

我有一个模块,它为 DOM 操作提供了一些方便的功能,我正在尝试使用 Jest 和 jsdom 对其进行测试,但是在实例化它时我似乎做错了。

通过阅读其他问题和答案(例如这个),我了解到 Jest 的测试环境会自动设置为使用 jsdom 并且您需要替换global.document,但它无法像我目前拥有的那样工作。

这是重现问题的最小测试用例:

// domUtils.js

function el(id) {
    return document.getElementById(id);
}
Run Code Online (Sandbox Code Playgroud)

// domUtils.test.js

import { JSDOM } from "jsdom";

import * as domUtils from "../src/domUtils";

describe("DOM operations", () => {
    // Workaround for jsdom issue 2304 - needed for later localStorage tests
    const url = "http://localhost";

    const documentHTML = '<!DOCTYPE html><div id="lorem" class="test">Lorem ipsum</div>';

    global.document = new JSDOM(documentHTML, { url });

    test("Get an element from …
Run Code Online (Sandbox Code Playgroud)

javascript dom unit-testing jsdom jestjs

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