是否可以将 TypeScript 中的枚举值作为数组获取?
像这样:
enum MyEnum {
FOO = 'foo',
BAR = 'bar'
}
Run Code Online (Sandbox Code Playgroud)
变成
['foo', 'bar']
Run Code Online (Sandbox Code Playgroud) 为什么Object.values()并Object.keys()总是给这两个键和值?
考虑以下代码:
enum Enum {
FOO,
BAR
}
console.log(Object.values(Enum));
console.log(Object.keys(Enum));
Run Code Online (Sandbox Code Playgroud)
其输出将是:
[ 'FOO', 'BAR', 0, 1 ]
[ '0', '1', 'FOO', 'BAR' ]
Run Code Online (Sandbox Code Playgroud)
为什么这样做,我如何只获取键和值?
我一直paths在我的tsconfig.json文件中设置选项。到目前为止一切正常。我可以运行我的测试,我可以像往常一样执行程序。我唯一的问题是,ESLint 没有找到使用tsconfig.json.
以下是与问题相关的所有文件:
tsconfig.json:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"allowJs": true,
"sourceMap": true,
"outDir": "./dist",
"rootDir": "./",
"strict": true,
"esModuleInterop": true,
"declaration": true,
"resolveJsonModule": true,
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["src/**/*", "test/**/*", "index.ts"]
}
Run Code Online (Sandbox Code Playgroud)
tsconfig.eslint.json:
{
"extends": "./tsconfig.json",
"include": ["src/**/*", "test/**/*", "index.ts", ".eslintrc.js"]
}
Run Code Online (Sandbox Code Playgroud)
.eslintrc.js:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"allowJs": true,
"sourceMap": true,
"outDir": "./dist",
"rootDir": "./",
"strict": true,
"esModuleInterop": true,
"declaration": true,
"resolveJsonModule": true, …Run Code Online (Sandbox Code Playgroud) 我检查了一些代码,但在行中出现错误(准确地说是“无效表达式术语“^”)
// choices is a regular array
return choices[^1];
Run Code Online (Sandbox Code Playgroud)
我从未见过一元插入符运算符(我只知道 XOR 运算符,但那个运算符显然需要两个操作数)。这个运算符是否存在,如果存在,它有什么作用?
注意:站点https://www.tutorialsteacher.com/csharp/csharp-operators在优先级表中提到了一个一元插入符运算符,但它没有解释它的作用。
是否有像 BUILD_SHARED_LIBS 这样的变量,但仅适用于单个目标(例如 MyLib_BUILD_SHARED,其中 MyLib 是库)。
我知道我可以使用命令中的STATIC或手动确定库是静态还是动态,但我想要一个可以由用户设置的选项,而不是硬编码的解决方案。DYNAMICadd_library
此致, 莱克斯
调试完成后是否可以自动关闭调试控制台?现在它保持打开状态,并显示“终端将由任务重用,按任意键关闭它”的文本。
我目前正在编写一个实用程序库,该库将附带一个预编译的 DLL 文件和库的头文件。到目前为止,有一大堆头文件,但我想将它们全部编译成一个头文件(有点像只预处理#include指令)。
我想知道,是否以及如何使用 CMake 实现这样的一代。
真诚的,莱克斯
是否可以使用 JavaFX 文件选择器(或类似的替代方法)来创建新文件?
输入不存在的文件的名称适用于 Linux(确切地说是 Ubuntu),但在 Windows 上,文件选择器不允许这样做。
我正在使用 docker compose 来设置应用程序环境。有两个不同的环境:测试和生产。
在测试环境中,我需要公开其他端口(用于调试)。这些端口在生产环境中应保持关闭状态。
我也想使用相同的图像和docker-compose.yml文件。使用相同的图像没有问题,但我在撰写文件时遇到了困难。在其中,我想根据环境变量打开或关闭端口。
当前的设置几乎是标准的,如下所示:
# ...
ports:
- "8080:8080" # HTTP Server port
- "9301:9301" # debug port
# ...
Run Code Online (Sandbox Code Playgroud)
在此示例中,两个端口始终暴露。仅当设置了9301某个环境变量(例如 )时,是否可以公开端口?EXPOSE_DEBUG
我想多次重新要求 TypeScript 和 Node 中的模块进行测试。根据这篇文章,应该使用
const config = require('./foo');
delete require.cache[require.resolve('./foo')];
Run Code Online (Sandbox Code Playgroud)
但是,这对我不起作用。另外,当我打印出该对象时require.cache,它是空的。
我是指挥官的新手,我正在尝试实现这样的命令树:
|- build
| |- browser (+ options)
| |- cordova (+ options)
| |- no subcommands, just options
|- config
| |- create (+ options)
Run Code Online (Sandbox Code Playgroud)
是否可以将这些命令拆分成多个文件,例如有点像这样:
中央档案:
|- build
| |- browser (+ options)
| |- cordova (+ options)
| |- no subcommands, just options
|- config
| |- create (+ options)
Run Code Online (Sandbox Code Playgroud)
构建命令的文件:
program.command('browser').description(...);
program.command('cordova').description(...);
program.option(...);
Run Code Online (Sandbox Code Playgroud)
配置命令的文件:
program.command('create').description(...);
Run Code Online (Sandbox Code Playgroud)
我知道 Git 风格的子命令,但这些似乎需要可执行文件(我只有常规的 JS 文件)
我想使用 Winston 来记录使用 TypeScript 的 NodeJS 应用程序中的错误。但每当我将 Winston 导入 Typescript 脚本时,我都会遇到同样的十一个错误:
node_modules/winston-transport/index.d.ts:6:23 - error TS2688: Cannot find type definition file for 'node'.
6 /// <reference types="node" />
~~~~
node_modules/winston-transport/index.d.ts:8:25 - error TS2307: Cannot find module 'stream'.
8 import * as stream from 'stream';
~~~~~~~~
node_modules/winston/index.d.ts:4:23 - error TS2688: Cannot find type definition file for 'node'.
4 /// <reference types="node" />
~~~~
node_modules/winston/index.d.ts:6:31 - error TS2307: Cannot find module 'stream'.
6 import * as NodeJSStream from "stream";
~~~~~~~~
node_modules/winston/index.d.ts:121:28 - error …Run Code Online (Sandbox Code Playgroud) 假设我有一个包含 foo、bar、creationdate 和 data 列的数据库。
我需要的是一个查询,它查询为 foo 和 bar 的每个唯一组合创建的第一行(即创建日期最低的行)。
例如,对于以下行:
+-----+-----+--------------+----------------+
| foo | bar | creationdate | data |
+-----+-----+--------------+----------------+
| abc | def | 31.12.2019 | some data |
+-----+-----+--------------+----------------+
| abc | def | 01.05.2020 | other data |
+-----+-----+--------------+----------------+
| ghi | jkl | 04.05.2020 | more data |
+-----+-----+--------------+----------------+
| ghi | jkl | 05.05.2020 | even more data |
+-----+-----+--------------+----------------+
Run Code Online (Sandbox Code Playgroud)
那么期望的输出是:
+-----+-----+--------------+----------------+
| abc | def | 31.12.2019 | some data |
+-----+-----+--------------+----------------+ …Run Code Online (Sandbox Code Playgroud)