我有这个代码:
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 中处理这个错误,也许我遗漏了一些东西。
我很难配置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) 我试图解决一个非常简单的问题 - 在数组中查找仅包含某些字母的字符串。但是,我在正则表达式的行为中遇到了一些问题和/或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) 我开始使用 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) 我正在尝试通过overrides在配置中设置来指定 ESLint 应检查的文件扩展名,而不是需要使用--ext命令行标志。该文件说:
\n\n默认情况下,ESLint 会检查文件以及与配置条目
\n*.js匹配的文件。overrides
的文档overrides说glob 模式files可以沿着 "src/*.js"or的行"**/*.js",并且这些与 ESLint 配置文件的基本目录相关。这些选项都不能让我使 ESLint 进程文件超出默认值*.js(在我的例子中*.jsx)。
这是我运行 ESLint 时的输出--ext:
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)\nRun Code Online (Sandbox Code Playgroud)\n正如预期的那样,它会产生警告。但如果没有--ext,ESLint 不会产生任何输出。
目录结构:
\n/home/scott/project/\n .eslintrc.js\n src/\n file.jsx\nRun Code Online (Sandbox Code Playgroud)\n.eslintrc.js:
scott@dev …Run Code Online (Sandbox Code Playgroud) 在使用业力时无法为我的测试加载模板装置.为了简化,
去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)
我在这里错过了什么?
从表中选择一些数据时,我想使用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某个地方?
假设我有一个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计算和总结特定条件, …
我有一个模块,它为 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 ×4
unit-testing ×2
arrays ×1
babeljs ×1
case ×1
conditional ×1
dataframe ×1
dom ×1
eslint ×1
jestjs ×1
jsdom ×1
karma-runner ×1
pandas ×1
perl ×1
pivot-table ×1
postgresql ×1
python ×1
reactjs ×1
regex ×1
sql ×1
svelte ×1
typescript ×1
webpack ×1