我正在写一个与 steam 相关的项目,遇到了这样的问题,api.steampowered.com有一个方法RevokeRefreshToken,请求包括accessToken、token_id、steamid、revoke_action 和 signature,我想了解到底需要传递给签名什么,需要加密哪些数据,如果有人知道,请留下你的解决方案,我将非常感激!
链接至 api 文档 - steamapi.xpaw.me
我正在写一个与 steam 相关的项目,遇到了这样的问题,api.steampowered.com有一个方法RevokeRefreshToken,请求包括accessToken、token_id、steamid、revoke_action 和 signature,我想了解到底需要传递给签名什么,需要加密哪些数据,如果有人知道,请留下你的解决方案,我将非常感激!
链接至 api 文档 - steamapi.xpaw.me
我编写了一个带有动态覆盖的简单类Symbol.toPrimitive
:
interface PrimitiveHintsMap {
"number": number;
"boolean": boolean;
"string": string;
}
class Timespan {
#duration = 0;
[Symbol.toPrimitive]<K extends keyof PrimitiveHintsMap>(hint: K): PrimitiveHintsMap[K] {
switch (hint) {
case `number`: return this.#duration;
case `boolean`: return Boolean(this.#duration);
case `string`: return this.toString();
default: throw new TypeError(`Invalid '${hint}' primitive hint`);
}
}
}
...就像对内置 DOM 侦听器所做的那样:
return
该函数每次都会抱怨
类型“number”不可分配给类型“PrimitiveHintsMap[K]”。
类型“number”不可分配给类型“never”。ts(2322)
我哪里错了?
你从哪里找到它的never
?
如何创建一个通用函数,该函数应将任意数量的通用类型数组作为参数并将它们组合成一个。
function concat<T>(arg: T[]): T{
}
concat();
// []
concat(['qwerty'], ['asd']);
// ['qwerty', 'asd']
concat([1, 2, 3], [4, 5], [6, 7, 8]);
// [1, 2, 3, 4, 5, 6, 7, 8]
我正在尝试找出头文件。一篇文章这样说:
首先,让我们使用以下命令加载 jquery 库的类型定义:
npm install --save-dev @types/jquery
这样,项目中就会创建一个node_modules/@types文件夹,其中jquery目录将存放jquery库的头文件。
此外,该项目将创建一个包含以下内容的package.json文件:{ "devDependencies": { "@types/jquery": "^3.5.5" } }
此外,还可以清楚地看到,假设将在项目的根目录中创建node_modules文件夹和package.json文件:那里给出了项目的屏幕截图。
但我不能那样做。我npm install --save-dev @types/jquery
在终端中输入命令-> 它表示一切都成功:
与此同时,项目中什么也没有出现:node_modules文件夹和package.json文件都没有出现。但我发现在主目录/home/USER_NAME中 有一个node_modules文件夹,在这个命令之后,其中出现了@types子目录,其中有一个jquery目录:
我尝试了不同的方法:首先,我在项目根目录中创建了一个package_json文件,其中包含以下内容:
{
"devDependencies": {
"@types/jquery": "^3.5.5"
}
}
然后我再次在终端中输入命令npm install --save-dev @types/jquery
,这一次node_modules文件夹实际上出现在项目根目录中,其中有@types/jquery:
也就是说,由于某种原因,默认情况下,软件包不是安装在项目中,而是安装在主目录中,即我理解“全球”。与此同时,我在另一篇文章中发现:
那些。事实证明,要全局安装该软件包,您需要-g开关,而我只是不输入它。但我还是做不到。
一般来说,任何了解该主题的人,请告诉我为什么 jquery 库的类型定义没有在本地加载并且没有创建 package.json 文件?我做错了什么?
以防万一,npm 版本 8.3.1,node 版本 16.14.0
如何将变量中的键替换为对象?
该网站将有两个选择框。一个包含键,另一个包含值。首先,我们选择键,然后选择值,然后显示与所选过滤器匹配的所有记录。
const users:{
name:string;
lastName:string;
age:number;
//[index: string]: string; этот вариант решения не подходит. Эта запись позволяет свободно использовать новые ключи в объекте, которые вообще не описаны. (как в JS)
}[]=[
{
name:'Саша',
lastName:'Александров',
age:22
},{
name:'Мария',
lastName:'Романова',
age:32
},
];
let keyVariable:string='lastName';//значение будет браться из списка
let textValue:string='Романова';//Значение будет браться из 2-го списка
for (let i = 0; i < users.length; i++) {
if users[i][keyOfObj]===textValue{
console.log(users[i][keyOfObj]);// тут и в условии if, ошибка TS7053: Element implicitly has an any type because expression of type string can't be used to index type
}
}