【前端面试】Typescript
Typescript面试题目回答
Typescript有哪些常用类型?
Typescript的常用类型包括:
- 基本类型:boolean(布尔类型)、number(数字类型)、string(字符串类型)。
- 特殊类型:null、undefined、void、never。
- 数组和元组:Array(数组类型)、Tuple(元组类型)。
- 枚举和任意类型:Enum(枚举类型)、Any(任意类型)。
- 对象类型:Object(对象类型),可以通过接口或类型别名来定义更具体的对象类型。
什么是TypeScript的对象类型?怎么定义对象类型?
在TypeScript中,对象类型用于表示具有多个属性的数据结构。可以通过字面量、接口或类型别名来定义对象类型。
- 字面量定义:直接在变量声明中指定对象的结构,例如:
let obj: { name: string; age: number } = { name: 'Alice', age: 30 }; - 接口定义:使用
interface关键字定义对象的形状,例如:interface Person { name: string; age: number; },然后可以使用这个接口来声明变量:let person: Person = { name: 'Bob', age: 25 }; - 类型别名定义:使用
type关键字为对象类型创建一个别名,例如:type Employee = { id: number; name: string; position: string };,然后可以使用这个别名来声明变量:let employee: Employee = { id: 1, name: 'Charlie', position: 'Engineer' };
什么是TypeScript的类型别名?怎么定义类型别名?
类型别名是TypeScript中的一个功能,它允许你为复杂的类型表达式创建一个简洁的名称。这有助于提高代码的可读性和可维护性。
定义类型别名的语法是:type AliasName = Type;。例如,可以为一个包含两个数字的对象类型定义一个别名:type Point = { x: number; y: number };。然后可以使用这个别名来声明变量:let point: Point = { x: 10, y: 20 };。
什么是TypeScript的接口?怎么定义接口?
接口是TypeScript中的一个核心概念,它用于定义对象的形状,即对象应该包含哪些属性以及这些属性的类型。接口还可以包含方法签名,用于描述对象应该实现哪些方法。
定义接口的语法是:interface InterfaceName { /* 属性和方法签名 */ };。例如,可以定义一个表示人的接口:interface Person { name: string; age: number; greet(): void; }。然后可以使用这个接口来声明一个类,该类实现了接口中定义的所有属性和方法:
class RealPerson implements Person { name: string; age: number; constructor(name: string, age: number) { this.name = name; this.age = age; } greet() { console.log(`Hello, my name is ${this.name}`); }
}
TypeScript的类型别名和接口有什么区别?
类型别名和接口在TypeScript中都可以用于定义对象的形状,但它们之间有一些关键的区别:
- 命名规范:类型别名的名称是唯一的,不能重复定义;而接口的名称可以重复,因为接口支持声明合并。
- 表示范围:类型别名可以表示任何类型,包括原始类型、联合类型、交叉类型和映射类型等;而接口只能表示对象类型。
- 互操作性:类型别名和接口可以相互扩展,但语法不同。类型别名可以使用
&操作符来组合多个类型,而接口可以使用extends关键字来继承另一个接口。
TypeScript中如何定义和导入模块?
在TypeScript中,可以使用ES模块或CommonJS模块系统来定义和导入模块。
- 定义模块:使用
export关键字将函数、类、变量或类型导出为模块成员。例如:export const hello = () => { console.log('Hello, world!'); };。 - 导入模块:使用
import关键字从其他模块中导入成员。例如:import { hello } from './helloModule'; hello();。
对于ES模块,TypeScript遵循ES6模块规范;对于CommonJS模块,TypeScript则使用Node.js的模块解析策略。
TypeScript的类有哪些成员可见性?
TypeScript的类成员具有三种可见性修饰符:
- public:成员在类的外部和内部都是可见的。这是默认修饰符。
- protected:成员在类的内部和派生类中是可见的,但在类的外部不可见。
- private:成员仅在类的内部可见,在类的外部和派生类中都不可见。
TypeScript的关键字static有什么作用?
static关键字用于定义类的静态成员。静态成员是属于类的,而不是属于类的实例的。这意味着可以在不创建类实例的情况下访问静态成员。静态成员通常用于表示与类本身相关而不是与类的实例相关的数据或方法。
TypeScript类的readonly修饰符有什么作用?
readonly修饰符用于定义类的只读属性。只读属性可以在类的构造函数中被初始化,但之后就不能再被修改了。这有助于保护类的状态不被意外改变。
TypeScript的void类型、object类型、never类型是什么?
- void类型:表示没有返回值的方法或函数的类型。当一个方法或函数不返回任何值时,可以将其返回类型指定为
void。 - object类型:表示非原始类型的值,即除
null和undefined之外的所有类型的值。在TypeScript中,object类型是所有非原始类型值的超类型。 - never类型:表示那些永不存在的值的类型。
never类型通常用于表示函数永远不会正常返回的情况,例如函数内部总是抛出异常或进入无限循环。
TypeScript的Function类型是什么?
在TypeScript中,Function类型表示一个函数。但是,通常更推荐使用箭头函数或具名函数签名来定义函数的类型,而不是直接使用Function类型。因为Function类型过于宽泛,它无法提供关于函数参数和返回值的类型信息。
TypeScript的any类型、unknown类型是什么?和any类型有什么区别?
- any类型:表示任意类型的值。在编译阶段,使用
any类型的变量可以赋予任意类型的值,并且不会进行类型检查。这有助于在编写代码时提供更大的灵活性,但也会失去TypeScript提供的类型安全性。 - unknown类型:表示未知类型的值。与
any类型不同,unknown类型的值在赋值给另一个变量之前必须进行类型断言或类型检查。这有助于在编写代码时保持类型安全性,避免意外的类型错误。
与any类型相比,unknown类型更加安全,因为它要求在使用未知类型的值之前进行明确的类型检查。
TypeScript的关键字extends有什么作用?
extends关键字在TypeScript中有两个主要用途:
- 类继承:用于定义一个类继承自另一个类。继承的类可以访问父类的属性和方法,并可以添加新的属性和方法或重写父类的方法。
- 接口继承:用于定义一个接口继承自另一个接口。继承的接口可以扩展父接口的属性和方法签名,并可以添加新的属性和方法签名。
TypeScript的关键字infer有什么作用?
infer关键字是TypeScript中的高级类型操作之一,它用于在条件类型中推断类型。当使用条件类型时,如果需要根据某个条件来推断出一个类型,可以使用infer关键字来声明一个占位符类型,并在条件满足时将其替换为实际的类型。
TypeScript的泛型是什么?
泛型是TypeScript中的一个强大功能,它允许在定义函数、接口或类时不具体指定类型,而是在使用时才指定类型。这有助于编写更加通用和可重用的代码。
例如,可以定义一个泛型函数来处理不同类型的数组:
function logArrayElements<T>(array: T[]): void { array.forEach(element => { console.log(element); });
}
在这个例子中,<T>是一个类型参数,它表示函数将处理的数组元素的类型。在调用函数时,可以指定这个类型参数的具体值:
logArrayElements<number>([1, 2, 3]);
logArrayElements<string>(['Hello', 'World']);
TypeScript的索引访问类型、条件类型、映射类型是什么?
- 索引访问类型:允许通过索引来访问对象类型的属性类型。例如,如果有一个对象类型
Person,可以使用Person['name']来获取name属性的类型。 - 条件类型:根据条件表达式的结果来选择不同的类型。条件类型的语法是
Type1 extends Type2 ? ResultType1 : ResultType2。如果Type1可以赋值给Type2,则结果是ResultType1,否则结果是ResultType2。 - 映射类型:通过映射一个对象的所有属性来创建一个新的类型。映射类型的语法是
{ [P in K]: T },其中K是属性名的类型(通常是字符串或数字索引类型),T是属性值的类型。这可以用于将对象的所有属性转换为另一种类型,或者添加新的属性等。
TypeScript 的模板字面量类型
在 TypeScript 中,模板字面量类型是一种特殊的类型,它允许你通过模板字符串的方式来定义类型。模板字面量类型可以包含嵌入的表达式,这些表达式在类型检查的阶段会被求值。这种类型通常用于定义与字符串相关的类型,并且可以在类型定义中嵌入变量或类型运算。例如:
type Greeting = `Hello, ${string}`; // 定义一个模板字面量类型
const greeting: Greeting = "Hello, World"; // 正确
const wrongGreeting: Greeting = "Hi, World"; // 错误,不符合模板字面量类型的定义
TypeScript 的类型操作符 keyof
keyof 是 TypeScript 中的一个类型操作符,用于获取一个对象类型(或接口)的所有公共属性名组成的字符串字面量联合类型。它常用于类型安全的属性访问和映射类型的定义。例如:
interface Person { name: string; age: number;
} type PersonKeys = keyof Person; // "name" | "age"
TypeScript 的类型操作符 typeof
typeof 是 TypeScript 中的一个类型操作符,用于获取给定变量或表达式的类型,并返回一个表示该变量或表达式类型的字符串字面量。它常用于类型检查和类型映射。例如:
const num = 10;
type NumType = typeof num; // number
TypeScript 的内置工具类型 Awaited
Awaited 是 TypeScript 中的一个内置工具类型,用于取出 Promise 的返回值类型。它适合用在描述 then() 方法和 await 命令的参数类型时。例如:
type StringType = Awaited<Promise<string>>; // string
TypeScript 的内置工具类型 Partial
Partial 是 TypeScript 提供的一个内置工具类型,用于将对象类型中的所有属性变为可选属性。这在你只需要更新对象的部分属性时非常有用。例如:
interface Person { name: string; age: number;
} type PartialPerson = Partial<Person>; // { name?: string; age?: number; }
TypeScript 的内置工具类型 Required
Required 是 TypeScript 提供的一个内置工具类型,用于将对象类型中的所有属性设置为必需(非可选)。例如:
interface Person { name?: string; age?: number;
} type RequiredPerson = Required<Person>; // { name: string; age: number; }
TypeScript 的内置工具类型 Readonly
Readonly 是 TypeScript 提供的一个内置工具类型,用于将给定类型的所有属性设置为只读。这意味着新创建的类型将具有与原始类型相同的属性,但这些属性在新类型中是只读的,不可修改。例如:
interface Person { name: string; age: number;
} type ReadonlyPerson = Readonly<Person>; // { readonly name: string; readonly age: number; }
TypeScript 的内置工具类型 Pick
Pick 是 TypeScript 提供的一个内置工具类型,用于从对象类型中挑选出一个或多个属性,并创建一个包含这些属性的新类型。例如:
interface Person { name: string; age: number; address: string;
} type PersonPick = Pick<Person, "name" | "age">; // { name: string; age: number; }
TypeScript 的内置工具类型 Record
Record 是 TypeScript 提供的一个内置工具类型,用于创建一个对象类型,该对象的属性键是特定类型,属性值是另一种类型。例如:
type StringToNumber = Record<string, number>; // { [key: string]: number }
TypeScript 的内置工具类型 Exclude
Exclude 是 TypeScript 提供的一个内置工具类型,用于从联合类型中排除某些类型,并返回一个新的类型。例如:
type T1 = Exclude<'a' | 'b' | 'c', 'a'>; // 'b' | 'c'
TypeScript 的内置工具类型 Extract
Extract 是 TypeScript 提供的一个内置工具类型,用于从联合类型中提取与给定类型兼容的所有类型,并返回一个新的类型。它是 Exclude 的反向操作。例如:
type T1 = Extract<'a' | 'b' | 'c', 'a' | 'd'>; // 'a'
TypeScript 的内置工具类型 Omit
Omit 是 TypeScript 提供的一个内置工具类型,用于从对象类型中排除一个或多个属性,并创建一个包含剩余属性的新类型。它是 Pick 的反向操作。例如:
interface Person { name: string; age: number; address: string;
} type PersonOmit = Omit<Person, "address">; // { name: string; age: number; }
TypeScript 的内置工具类型 NonNullable
NonNullable 是 TypeScript 提供的一个内置工具类型,用于从类型中排除 null 和 undefined,并返回一个新的类型。例如:
type T1 = NonNullable<string | null | undefined>; // string
TypeScript 的内置工具类型 Parameters
Parameters 是 TypeScript 提供的一个内置工具类型,用于获取一个函数类型的参数类型,并返回一个表示这些参数类型的元组。例如:
function foo(x: number, y: string): boolean { return x > 0 && y.length > 0;
} type FooParams = Parameters<typeof foo>; // [x: number, y: string]
TypeScript 的内置工具类型 ConstructorParameters
ConstructorParameters 是 TypeScript 提供的一个内置工具类型,用于获取一个构造函数的参数类型,并返回一个表示这些参数类型的元组。例如:
class MyClass { constructor(x: number, y: string) {}
} type MyClassParams = ConstructorParameters<typeof MyClass>; // [x: number, y: string]
TypeScript 的内置工具类型 ReturnType
ReturnType 是 TypeScript 提供的一个内置工具类型,用于获取一个函数类型的返回类型。例如:
function foo(): string { return "hello";
} type FooReturnType = ReturnType<typeof foo>; // string
TypeScript 的内置工具类型 InstanceType
InstanceType 是 TypeScript 提供的一个内置工具类型,用于获取一个构造函数类型的实例类型。例如:
class MyClass { name: string; constructor(name: string) { this.name = name; }
} type MyClassInstance = InstanceType<typeof MyClass>; // MyClass
注意:这里的 InstanceType 返回的应该是 MyClass 的实例类型,而不是 MyClass 本身。但在 TypeScript 的类型系统中,我们通常不需要显式地表示实例类型(因为它会自动推断),因此这里的描述主要是为了解释 InstanceType 的作用。在实际使用中,你可能会将 InstanceType 用于泛型约束或类型映射等场景。
TypeScript 的内置工具类型(Nolnfer、ThisParameterType、OmitThisParameter、ThisType)
- Nolnfer:这个类型在您的问题中可能是个拼写错误,我猜测您可能是想问
NonNullable,上面已经介绍过了。 - ThisParameterType:
ThisParameterType是 TypeScript 提供的一个内置工具类型,用于获取一个函数类型的this参数的类型。这在处理类方法或需要明确this类型的函数时非常有用。例如:
function foo(this: { bar: number }, x: string): number { return this.bar + x.length;
} type FooThisType = ThisParameterType<typeof foo>; // { bar: number }
- OmitThisParameter:这个类型在 TypeScript 的标准内置工具类型中并不存在。可能是您记错了某个类型或者看到了某个特定库中的扩展类型。在 TypeScript 中,没有直接的方式来“省略”
this参数,因为this参数的类型通常是由函数所在的上下文决定的。 - ThisType:
ThisType是一个在 JSX 中使用的特殊类型,用于指定this的类型。在普通的 TypeScript 代码中,你通常不需要使用ThisType。但在 JSX 中,当你需要在回调函数中访问组件的实例时,可以使用ThisType来指定this的类型。例如:
interface MyComponentThisType { myMethod: () => void;
} const MyComponent = (props: {}) => { /* JSX code here */ return <button onClick={(e) => { // 在这里,`this` 被指定为 MyComponentThisType (this as MyComponentThisType).myMethod(); }}>Click me</button>;
} as React.FC<{}> & { this: ThisType<MyComponentThisType> };
注意:上面的 ThisType 示例是在 JSX 和 React 的上下文中使用的。在普通的 TypeScript 函数或类中,你通常不需要使用 ThisType。
为什么要使用 TypeScript?TypeScript 有哪些常用特性?
why
- 静态类型检查:TypeScript使用静态类型,能在编译时进行类型检查,这有助于避免在运行时遇到类型相关的错误,从而提高代码的健壮性和稳定性。
- 提高代码可读性:通过类型注解和接口等特性,TypeScript能够清晰地描述代码的结构和数据的类型,使代码更易于阅读和理解。
- 便于重构和维护:对于大型、复杂的应用程序,TypeScript的类型系统使得重构代码变得更加容易,同时降低了维护成本。
- 支持现代JavaScript特性:TypeScript不仅包含了JavaScript的所有元素,还提供了最新的和不断发展的JavaScript特性,如异步功能和Decorators等,有助于建立健壮的组件。
- 提高开发效率:TypeScript提供了自动完成和动态输入等智能感知功能,这些功能能够大大提高开发人员的工作效率。
features
- 类型注解:为函数和变量添加约束的方式,使得代码在编译时就能进行类型检查。
- 接口:使用接口来描述一个拥有具体字段的对象,确保实现接口的对象包含了接口要求的结构。
- 类:TypeScript引入了“类”的概念,使得面向对象编程在JavaScript中得以实现。
- 枚举:枚举类型是对JavaScript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字。
- 模块:TypeScript支持模块的概念,可以把声明、数据、函数和类封装在模块中,避免全局命名空间污染,并方便管理依赖关系。
- 访问修饰符:TypeScript支持访问修饰符(public、private、protected),它们决定了类成员的可访问性,有助于封装和保护类的内部状态。
- 泛型:泛型允许在定义函数、接口或类时不指定具体类型,而是在使用时指定类型,这有助于编写更加灵活和可复用的代码。
- 类型断言:类型断言是一种告诉编译器“相信我,我知道自己在干什么”的方式,它允许开发人员将一个变量断言为特定类型,以便在编译时获得更好的类型检查。
具体讲解
- Typescript 有哪些常用类型?
- 什么是 TypeScript 的对象类型?怎么定义对象类型?
- 什么是 TypeScript 的类型别名?怎么定义类型别名?
- 什么是 TypeScript 的接口?怎么定义接口?
- TypeScript 的类型别名和接口有什么区别?
- TypeScript 中如何定义和导入模块?
- TypeScript 的类有哪些成员可见性?
- TypeScript 的关键字 static 有什么作用?
- TypeScript 类的 readonly 修饰符有什么作用?
- 什么是 TypeScript 的 void 类型?
- 什么是 TypeScript 的 object 类型?
- 什么是 TypeScript 的 never 类型?
- 什么是 TypeScript 的 Function 类型?
- 什么是 TypeScript 的 any 类型?
- 什么是 TypeScript 的 unknown 类型?和 any 类型有什么区别?
- TypeScript 的关键字 extends 有什么作用?
- TypeScript 的关键字 infer 有什么作用?
- 什么是 TypeScript 的泛型?
- 什么是 TypeScript 的索引访问类型?
- 什么是 TypeScript 的条件类型?
- 什么是 TypeScript 的映射类型?
- 什么是 TypeScript 的模板字面量类型?
- TypeScript 的类型操作符 keyof 有什么作用?
- TypeScript 的类型操作符 typeof 有什么作用?
- TypeScript 的内置工具类型 Awaited 有什么作用?
- TypeScript 的内置工具类型 Partial 有什么作用?
- TypeScript 的内置工具类型 Required 有什么作用?
- TypeScript 的内置工具类型 Readonly 有什么作用?
- TypeScript 的内置工具类型 Pick 有什么作用?
- TypeScript 的内置工具类型 Record 有什么作用?
- TypeScript 的内置工具类型 Exclude 有什么作用?
- TypeScript 的内置工具类型 Extract 有什么作用?
- TypeScript 的内置工具类型 Omit 有什么作用?
- TypeScript 的内置工具类型 NonNullable 有什么作用?
- TypeScript 的内置工具类型 Parameters 有什么作用?
- TypeScript 的内置工具类型 ConstructorParameters 有什么作用?
- TypeScript 的内置工具类型 ReturnType 有什么作用?
- TypeScript 的内置工具类型 InstanceType 有什么作用?
- TypeScript 的内置工具类型 Nolnfer 有什么作用?
- TypeScript 的内置工具类型 ThisParameterType 有什么作用?
- TypeScript 的内置工具类型 OmitThisParameter 有什么作用?
- TypeScript 的内置工具类型 ThisType 有什么作用?
- 为什么要使用 TypeScript?TypeScript 有哪些常用特性?
相关文章:
【前端面试】Typescript
Typescript面试题目回答 Typescript有哪些常用类型? Typescript的常用类型包括: 基本类型:boolean(布尔类型)、number(数字类型)、string(字符串类型)。特殊类型:nul…...
程序语言的内存管理:垃圾回收GC(Java)、手动管理(C语言)与所有权机制(Rust)(手动内存管理、手动管理内存)
文章目录 程序语言的内存管理:垃圾回收、手动管理与所有权机制引言一、垃圾回收机制(GC)(Java)1. 什么是垃圾回收机制2. 垃圾回收的工作原理3. 优点与缺点4. 示例代码 二、手动管理内存的分配和释放(C语言&…...
研究生论文学习记录
文献检索 检索论文的网站 知网:找论文,寻找创新点paperswithcode :这个网站可以直接找到源代码 直接再谷歌学术搜索 格式:”期刊名称“ 关键词 在谷歌学术搜索特定期刊的关键词相关论文,可以使用以下几种方法&#…...
毕业设计选题:基于Django+Vue的图书馆管理系统
开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 系统首页 图书馆界面 图书信息界面 个人中心界面 后台登录界面 管理员功能界面 用户…...
#网络安全#NGSOC与传统SOC的区别
NGSOC是Next Generation Security Operation Center(下一代安全运营中心)的缩写。 NGSOC安全运营服务基于态势感知与安全运营平台来开展监测分析等一系列的服务工作,旨在通过专业、高效的运营服务工作,帮助用户尽可能发挥NGSOC作…...
GCN+BiLSTM多特征输入时间序列预测(Pytorch)
目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 GCNBiLSTM多特征输入时间序列预测(Pytorch) 可以做风电预测,光伏预测,寿命预测,浓度预测等。 Python代码,基于Pytorch编写 1.多特征输入单步预测…...
LinkedList和链表之刷题课(下)
1. 给定x根据x把链表分割,大的结点放在x后面,小的结点放在x前面 题目解析: 注意此时的pHead就是head(头节点的意思) 基本上就是给定一个链表,我们根据x的值来把这个链表分成俩部分,大的那部分放在x后面,小的那部分放在x前面,并且我们不能改变链表本来的顺序,比如下面的链表,我…...
ollama 在 Linux 环境的安装
ollama 在 Linux 环境的安装 介绍 他的存在在我看来跟 docker 的很是相似,他把市面上已经存在的大语言模型集合在一个仓库中,然后通过 ollama 的方式来管理这些大语言模型 下载 # 可以直接通过 http 的方式吧对应的 shell 脚本下载下来,然…...
C语言二刷指针篇
&取得变量的地址 printf("%p\n", &a); printf("%p\n", a); printf("%p\n", &a[0]); printf("%p\n", &a[1]); 前三个输出相同,a[0]和a[1]之间相差4 指针就是保存地址的变量,指针里放的是别的…...
LeetCode题练习与总结:回文对--336
一、题目描述 给定一个由唯一字符串构成的 0 索引 数组 words 。 回文对 是一对整数 (i, j) ,满足以下条件: 0 < i, j < words.length,i ! j ,并且words[i] words[j](两个字符串的连接)是一个回文…...
CesiumJS 案例 P7:添加指定长宽的图片图层(原点分别为图片图层的中心点、左上角顶点、右上角顶点、左下角顶点、右下角顶点)
CesiumJS CesiumJS API:https://cesium.com/learn/cesiumjs/ref-doc/index.html CesiumJS 是一个开源的 JavaScript 库,它用于在网页中创建和控制 3D 地球仪(地图) 一、添加指定长宽的图片图层(原点为图片图层的中心…...
Redis 主从同步 问题
前言 相关系列 《Redis & 目录》(持续更新)《Redis & 主从同步 & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Redis & 主从同步 & 总结》(学习总结/最新最准/持续更新)《Redis &a…...
【SQL Server】探讨 IN 和 EXISTS之间的区别
前言 在使用 SQL 查询相关表数据时,通常需要根据另一个表中的值来筛选数据。而 IN 与 EXISTS 子句都是用于此场景的常用方式,但使用时两者存在工作方式不同。它们使用上的选择会显著影响查询的性能,尤其是在大型数据集中。本文我们一起探讨 IN 和 EXISTS 之间的区别、使用与…...
清理pip和conda缓存
当用户目录没有空间时,可清理pip和conda缓存 清理conda缓存: conda clean --all清理pip缓存: pip cache purgeNote: 可以利用软链接,将用户目录下的文件链接到其他位置 首先移动文件或文件夹到其他位置 mv ~/test /…...
git rebase和merge的区别
Git merge和Git rebase是两种不同的合并策略,它们在处理分支合并时有各自的优点和缺点。 Git fetch git fetch 命令用于从远程仓库获取最新的更改,但不会自动合并这些更改到你的本地分支。它会下载远程仓库的所有分支和标签,并更新你的本地…...
【elkb】linux麒麟v10安装ELKB 8.8.X版本(ARM架构)
下载软件 相关版本信息 elasticsearch:8.8.1kibana:8.8.1logstash:8.8.1filebeat:8.8.1 下载地址 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.1-linux-aarch64.tar.gzhttps://artifacts.elastic…...
bluez hid host介绍,连接键盘/鼠标/手柄不是梦,安排
零. 前言 由于Bluez的介绍文档有限,以及对Linux 系统/驱动概念、D-Bus 通信和蓝牙协议都有要求,加上网络上其实没有一个完整的介绍Bluez系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度,学习曲线也相对较陡,所以我有了这个想法,专门对Bluez做一个系统…...
GPT打数模——电商品类货量预测及品类分仓规划
背景 电商企业在各区域的商品存储主要由多个仓库组成的仓群承担。其中存储的商品主要按照属性(品类、件型等)进行划分和打标,便于进行库存管理。图 1 是一个简化的示意图,商品品类各异,件数众多,必须将这些…...
华为OD机试 - 螺旋数字矩阵 - 矩阵(Python/JS/C/C++ 2024 D卷 100分)
华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…...
分类预测 | GCN图卷积神经网络多特征分类预测(MATLAB)
分类预测 | GCN图卷积神经网络多特征分类预测(MATLAB) 目录 分类预测 | GCN图卷积神经网络多特征分类预测(MATLAB)分类效果基本介绍程序设计参考资料分类效果 基本介绍 GCN图卷积神经网络多特征分类预测(MATLAB) 在图卷积神经网络(GCN)中,多特征分类...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
