我最近一直在为 Visual Studio Code 的一个非常烦人的行为而苦苦挣扎。
每当我尝试使用 JavaScript扩展语法时, VSCode 会自动自动完成下一段代码(错误地)。注意我没有打TAB。这是我正在谈论的内容的演示:
有没有办法禁用它?这真的让我发疯......我正在使用Visual Studio Code 1.59.0(这应该是创作这个问题时的最新版本)。
javascript intellisense autocomplete spread-syntax visual-studio-code
今天(7.8.2021)Discord.js v13已经发布。所以我升级了我以前的Discord.js安装
npm i discord.js@latest
然后将我的基本index.js文件调整为这种状态(我遵循了Discord.js 指南):
const { Client, Intents } = require("discord.js");
const client = new Client({
intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES],
});
client.once("ready", () => {
console.log("Ready!");
});
client.login("my-token");
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行我的代码时,我不断收到此错误:
$节点。
(node:11216) UnhandledPromiseRejectionWarning: ReferenceError: AbortController 未定义
在 RequestHandler.execute (C:\ pathTo \ node_modules \discord.js\src\rest\RequestHandler.js:172:15)
我已经使用Discord.js超过 2 年了,因此我很惊讶我在新版本中遇到了问题。这是Discord.js v13库的问题吗?如果不是,我该如何修复错误?
想象一下,我有以下简单的数组:
const myArr = ["el1", "el2", "el3", "el4", "el5", "el6", "el7"];
Run Code Online (Sandbox Code Playgroud)
现在我想在“el5”(索引 4)之后获取下一个例如 3 个元素。如您所见,数组中只剩下 2 个元素。当点击数组中的最后一个索引时,我想回到起点并在那里继续。
这应该是预期输出时开始为“EL5”(索引4): ["el6", "el7", "el1"]。
这就是我迄今为止所尝试的。
const myArr = ["el1", "el2", "el3", "el4", "el5", "el6", "el7"];
let output = [];
const followingElementsCount = 3;
let startIndex = myArr.findIndex(el => el === "el5") + 1;
let overflow = 0;
for (let i = 0; i < followingElementsCount; i++) {
if (startIndex + i >= myArr.length) {
startIndex = 0;
overflow++;
}
output.push(myArr[startIndex + i …Run Code Online (Sandbox Code Playgroud)我正在尝试编写一个非常简单的程序,该程序将一个数组划分为另一个定义大小的较小数组的数组,但是该push()方法不起作用。有人可以帮我吗?
function chunk(array, size) {
var newArray = [];
var tempArray = [];
for (let i = 0; i < array.length / size; i++) {
for (let j = size * i, k = 0; j < size * i + size; j++, k++)
tempArray[k] = array[j];
newArray.push(tempArray);
}
return newArray;
}
var data = [1, 2, 3, 4, 5, 6, 7, 8];
console.log(chunk(data, 2));
Run Code Online (Sandbox Code Playgroud)
理想的输出应该是[[1, 2],[3, 4], [5, 6], [7, 8]]。但是我得到了[[7,8],[7,8],[7,8],[7,8]]。
现在,我真的希望这不是太基于观点。但我只是想在这里提供一些建议,因为我不知道如何开始。
\n我有一个基本的Nx工作区,其中包含 TypeScript React 前端和SCSS样式。\n该项目的架构如下所示:
\nroot/\n\xe2\x94\x9c\xe2\x94\x80 apps/\n\xe2\x94\x9c\xe2\x94\x80 libs/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 someLib1/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 src/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 lib/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 someLib1.tsx\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 someLib1.scss\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 someLib2/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 someLib3/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 shared/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 styles/\n\xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80 global.scss\nRun Code Online (Sandbox Code Playgroud)\n有什么聪明的方法可以导入global.scss到任何可访问的(=相同文件夹级别或以下)组件中吗/libs?举个例子:
\n想象一下我已经$example: #fff;在global.scss. someLib1.scss如果不通过绝对路径(@import/@use "../../../shared/styles/global.scss"或)导入它,我将如何使用它@import/@use "/libs/shared/styles/global.scss"?
在一些库中,我经常看到类似这样的 TS 语法:
type AriaRole = 'alert' | 'tree' | 'treegrid' | 'treeitem' | (string & {});
Run Code Online (Sandbox Code Playgroud)
是什么意思string & {}?
它是与对象相交的字符串。
这有意义还是可能是黑客行为?
我试图了解如何合并声明接口,但我希望向对象文字类型添加属性,而不是向接口本身添加字段。
我在库中定义了一个类型,如下所示:
interface DefaultSession {
user?: {
name?: string | null;
email?: string | null;
image?: string | null;
};
expires: ISODateString;
}
Run Code Online (Sandbox Code Playgroud)
我知道,如果我想在不更改名称的情况下向该界面添加一个字段,我可以简单地重新打开并声明:
interface DefaultSession {
role?: string
}
Run Code Online (Sandbox Code Playgroud)
我一直在研究 Typescript 手册,但我找不到一种方法将声明角色合并为用户下的属性以产生如下类型:
interface DefaultSession {
user?: {
name?: string | null;
email?: string | null;
image?: string | null;
role?: string | null;
};
expires: ISODateString;
}
Run Code Online (Sandbox Code Playgroud) 考虑以下情况。我有一个基类Measurement和几个继承自的派生类(例如AdditionalMeasurement和SpecialMeasurement)Measurement
class Measurement {
public DateTime TimeStamp { get; set; }
}
class AdditionalMeasurement : Measurement {
public DateTime PurchaseDate { get; set; }
}
class SpecialMeasurement: Measurement {
public DateTime PrescriptionDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如何按默认值List<Measurement>降序排序Measurement.TimeStamp(=对于所有其他派生类),但如果列表中的项目的类型为AdditionalMeasurementbyPurchaseDate且项目的类型为SpecialMeasurementby PrescriptionDate?
显然,我下面的尝试不起作用,但希望能展示这个想法。
List<Measurement> measurements = new List<Measurement>() { ... };
measurements.OrderByDescending(m =>
{
if (m is AdditionalMeasurement additionalMeasurement)
{
return additionalMeasurement.PurchaseDate;
}
else if …Run Code Online (Sandbox Code Playgroud) 假设我有一个double = 99.00;. 如何定义一个字符串format,该字符串将输出一个字符串,就像"0.099"使用double.ToString(format);. 正如你所看到的,我想格式化我的双精度,就好像它被除以一样1000。
我知道我可以做这样的事情:
double number = 99.00;
string formattedNumber = (number / 1000).ToString("0.000");
Console.WriteLine(formattedNumber); // Output: "0.099"
Run Code Online (Sandbox Code Playgroud)
然而,有没有一种方法可以直接定义格式而不需要任何额外的计算呢?
javascript ×5
typescript ×3
.net ×2
c# ×2
architecture ×1
array-push ×1
arrays ×1
autocomplete ×1
discord.js ×1
intellisense ×1
linq ×1
loops ×1
node.js ×1
nrwl-nx ×1
object ×1
reactjs ×1
sass ×1
sorting ×1