vue3项目引入typescript总结

2023-10-30

tsconfig.json详细配置

根选项

include:指定被编译文件所在的目录。
exclude:指定不需要被编译的目录。
extends:指定要继承的配置文件。
files:指定被编译的文件。
references:项目引用,是 TS 3.0 中的一项新功能,它允许将 TS 程序组织成更小的部分。
使用小技巧:在填写路径时 ** 表示任意目录, * 表示任意文件。
compilerOptions
​ 定义项目的运行时期望、JavaScript 的发出方式和位置以及与现有 JavaScript 代码的集成级别。

项目选项

incremental:是否启用增量编译,指再次编译时只编译增加的内容,默认:false。
target:指定ts编译成ES的版本。
module:指定编译后代码使用的模块化规范。
lib:指定项目运行时使用的库。
outDir:指定编译后文件所在目录。
outFile:将代码编译合并成一个文件,默认将所有全局作用域中的代码合并成一个文件。
rootDir:指定输入文件的根目录,默认情况下当前的项目目录为根目录。
allowJs:是否对js文件进行编译,默认:false。
checkJs:是否检查js代码是否符合语法规范,当使用checkJs,必须使用allowJs,默认:false。
removeComments:是否移除注释,默认:false
noEmit:不生成编译后的文件,默认:false。
jsx:指定JSX代码生成用于的开发环境。
plugins:在编辑器中运行的语言服务插件列表。
declaration:是否生成相应的 .d.ts 声明文件,默认:false。
declarationMap:是否为每个对应的 .d.ts 文件生成一个 Map 文件,使用该功能时,需要declaration或composite配合一起使用,默认:false。
sourceMap:是否生成相应的Map映射的文件,默认:false。
composite:是否开启项目编译,开启该功能,将会生成被编译文件所在的目录,同时开启declaration、declarationMap和incremental,默认:false。
tsBuildInfoFile:指定增量编译信息文件的位置,使用该功能时,必须开启incremental选项。
importHelpers:是否将辅助函数从 tslib 模块导入,默认:false。
downlevelIteration:是否用于转换为旧版本的 JS 提供可迭代对象的全面支持,默认:false。
isolatedModules:是否将每个文件转换为单独的模块,默认:false。

严格检查

strict:是否启动所有严格检查的总开关,默认:false,启动后将开启所有的严格检查选项。
alwaysStrict:是否以严格模式解析,并为每个源文件发出"use strict",默认:false。
noImplicitAny:是否禁止隐式的any类型,默认:false。
noImplicitThis:是否禁止不明确类型的this,默认:false。
strictNullChecks:是否启用严格的空检查,默认:false。
strictBindCallApply:是否在函数上启用严格的’bind’, 'call’和’apply’方法,默认:false。
strictFunctionTypes:是否启用对函数类型的严格检查,默认:false。
strictPropertyInitialization:是否启用严格检查类的属性初始化,默认:false。

模块解析选项

moduleResolution:指定模块解析策略,node或classic
baseUrl:用于解析非绝对模块名的基本目录,相对模块不受影响。
paths:用于设置模块名称基于baseUrl的路径映射关系。
rootDirs:将多个目录放在一个虚拟目录下,运行编译后文件引入的位置发生改变,也不会报错。
typeRoots:指定声明文件或文件夹的路径列表
types:用来指定需要包含的模块,并将其包含在全局范围内。
allowSyntheticDefaultImports:是否允许从没有默认导出的模块中默认导入,默认:false。
esModuleInterop:是否通过为所有导入模块创建命名空间对象,允许CommonJS和ES模块之间的互操作性,开启改选项时,也自动开启allowSyntheticDefaultImports选项,默认:false。
preserveSymlinks:是否不解析符号链接的真实路径,这是为了在 Node.js 中反映相同的标志,默认:false。
allowUmdGlobalAccess:允许您从模块文件内部访问作为全局变量的 UMD 导出,如果不使用该选项,从 UMD 模块导出需要一个导入声明,默认:false。

Map选项

sourceRoot:指定调试器应定位 TypeScript 文件而不是相对源位置的位置。
mapRoot:指定调试器定位Map文件的位置,而不是生成的位置。
inlineSourceMap:是否将Map文件内容嵌套到 JS 文件中,这会导致 JS 文件变大,但在某些情况下会很方便,默认:false。
inlineSources:是否将 .ts 文件的原始内容作为嵌入字符串包含在 .map 文件中,默认:false。

附加检查

noUnusedLocals:是否检查未使用的局部变量,默认:false。
noUnusedParameters:是否检查未使用的参数,默认:false。
noImplicitReturns:检查函数是否不含有隐式返回值,默认:false。
noImplicitOverride:是否检查子类继承自基类时,其重载的函数命名与基类的函数不同步问题,默认:false。
noFallthroughCasesInSwitch:检查switch中是否含有case没有使用break跳出,默认:false。
noUncheckedIndexedAccess:是否通过索引签名来描述对象上有未知键但已知值的对象,默认:false。
noPropertyAccessFromIndexSignature:是否通过" . “(obj.key) 语法访问字段和"索引”( obj[“key”]), 以及在类型中声明属性的方式之间的一致性,默认:false。

实验选项

experimentalDecorators:是否启用对装饰器的实验性支持,装饰器是一种语言特性,还没有完全被 JavaScript 规范批准,默认:false。emitDecoratorMetadata:为装饰器启用对发出类型元数据的实验性支持,默认:false。

高级选项

allowUnreachableCode:是否允许无法访问的代码(undefined / true / false),默认:undefined。
undefined:向编辑提供建议作为警告。
true:未使用的标签被忽略。
false:引发有关未使用标签的编译器错误。
allowUnusedLabels:是否允许未使用的标签(undefined / true / false),默认:undefined。
undefined:向编辑提供建议作为警告。
true:未使用的标签被忽略。
false:引发有关未使用标签的编译器错误。
assumeChangesOnlyAffectDirectDependencies是否避免重新检查/重建所有真正可能受影响的文件,而只会重新检查/重建已更改的文件以及直接导入它们的文件,默认:false。
charset:字符集(已弃用),默认:utf8
declarationDir:提供一种方法来配置发出声明文件的根目录。
diagnostics:用于输出用于调试的诊断信息
disableReferencedProjectLoad:是否禁用所有可用项目加载到内存中,默认:false。
disableSizeLimit:为了避免在处理非常大的 JS 项目时可能出现的内存膨胀问题,TS 将分配的内存量有一个上限,默认:false。
disableSolutionSearching:在编辑器中搜索查找所有引用或跳转到定义等功能时,禁止包含复合项目,默认:false。
disableSourceOfProjectReferenceRedirect:是否禁用项目引用源重定向,默认:false。
emitBOM:控制TypeScript在写输出文件时是否发出字节顺序标记(BOM),默认:false。
emitDeclarationOnly:是否只发出.d.ts 文件,不发出.js 文件,使用该选项时,需要配合 declaration 或 composite 一起使用,默认:false。
explainFiles:解释文件,此选项用于调试文件如何成为编译的一部分,默认:false。
extendedDiagnostics:是否查看 TS 在编译时花费的时间,默认:false。
forceConsistentCasingInFileNames:是否区分文件系统大小写规则,默认:false。
generateCpuProfile:在编译阶段让 TS 发出 CPU 配置文件,只能通过终端或 CLI 调用 --generateCpuProfile tsc-output.cpuprofile 。
importsNotUsedAsValues:此标志控制如何 import 工作方式,有 3 个不同的选项:remove、preserve 和 error 。
jsxFactory:当使用经典的JSX运行时编译JSX元素时,更改.js文件中调用的函数,默认:React.createElement 。
jsxFragmentFactory:指定 JSX 片段工厂函数在指定了 jsxFactory 编译器选项的情况下针对 react JSX 发出时使用。
jsxImportSource:当在TS 4.1中使用 jsx 作为 react-jsx 或 react-jsxdev 时,声明用于导入jsx和jsxs工厂函数的模块说明符。
keyofStringsOnly:当应用具有字符串索引签名的类型时,此标志将类型操作符的键值更改为返回 string 而不是string | number,已弃用,默认:false。
listEmittedFiles:是否将编译部分生成的文件的名称打印到终端,默认:false。
listFiles:是否打印编译文件部分的名称,默认:false。
maxNodeModuleJsDepth:在node_modules下搜索并加载JavaScript文件的最大依赖深度,默认:0 。
newLine:指定发出文件时要使用的换行规则,CRLF (dos) 或 LF (unix)。
noEmitHelpers:是否使用全局作用域助手函数提供实现,并完全关闭助手函数的发出,而不是使用 importhelper 来导入助手函数,默认:false。
noEmitOnError:有错误时不进行编译,默认:false。
noErrorTruncation:是否禁止截断错误消息,已弃用,默认:false。
noImplicitUseStrict:是否禁止无隐式严格模式,默认:false。
noLib:是否禁止自动包含任何库文件,默认:false。
noResolve:是否禁用析后的文件添加到程序中;默认情况下,TS 会检查 import 和 reference 指令的初始文件集,并将这些解析后的文件添加到你的程序中,默认:false。
noStrictGenericChecks:是否禁用严格的泛型检查,默认:false。
out:该选项以不可预测或一致的方式计算最终文件位置,已弃用,
preserveConstEnums:是否禁止删除枚举常量生成代码中的声明,默认:false。
reactNamespace:React命名空间,使用 jsxFactory 来代替。
resolveJsonModule:是否解析 JSON 模块,默认:false。
skipDefaultLibCheck:是否跳过默认库声明文件的类型检查,默认:false。
skipLibCheck:是否跳过声明文件的类型检查,这可以在编译期间以牺牲类型系统准确性为代价来节省时间,默认:false。
stripInternal:是否禁止 JSDoc 注释中带有@internal注释的代码发出声明,默认:false。
suppressExcessPropertyErrors:是否禁用报告过多的属性错误,默认:false。
suppressImplicitAnyIndexErrors:是否抑制隐式any索引的错误,默认:false。
traceResolution:当尝试调试未包含模块的原因时。启用该选项让 TypeScript 打印有关每个处理文件的解析过程的信息,默认:false。
useDefineForClassFields:此标志用作迁移到即将推出的类字段标准版本的一部分,默认:false。

命令行

preserveWatchOutput:是否在监视模式下保留过时的控制台输出,而不是每次发生更改时都清除屏幕,默认:false。
pretty:是否使用颜色对上下文错误和消息进行样式化,默认:true。
watchOptions
配置 TypeScript 的 --watch工作方式。

监视选项

watchFile:监视单个文件的策略,默认:useFsEvents
fixedPollingInterval:以固定时间间隔每秒多次检查每个文件的更改。
priorityPollingInterval:每秒多次检查每个文件的更改,但使用启发式方法检查某些类型的文件的频率低于其他文件。
dynamicPriorityPolling:使用动态队列,其中不经常修改的文件将不那么频繁地检查。
useFsEvents:尝试使用操作系统/文件系统的本机事件进行文件更改。
useFsEventsOnParentDirectory:尝试使用操作系统/文件系统的本机事件来监听文件父目录的变化。
watchDirectory:在缺乏递归文件监视功能的系统下如何监视整个目录树的策略,默认:useFsEvents
fixedPollingInterval:以固定时间间隔每秒多次检查每个目录的变化。
dynamicPriorityPolling:使用动态队列,其中不经常修改的目录将不那么频繁地检查。
useFsEvents:尝试使用操作系统/文件系统的本机事件进行目录更改。
fallbackPolling:使用文件系统事件时,此选项指定当系统用完本机文件观察器和/或不支持本机文件观察器时使用的轮询策略,默认:dynamicPriorityPolling
fixedPollingInterval:以固定时间间隔每秒多次检查每个文件的更改。
priorityPollingInterval:每秒多次检查每个文件的更改,但使用启发式方法检查某些类型的文件的频率低于其他文件。
dynamicPriorityPolling:使用动态队列,其中不经常修改的文件将不那么频繁地检查。
synchronousWatchDirectory:禁用对目录的延迟监视。
synchronousWatchDirectory:在本机不支持递归观看的平台上同步调用回调,并更新目录观察者的状态,默认:false。
excludeDirectories:使用排除目录来大幅减少 --watch 期间被监视的文件数量.
excludeFiles:使用excludeFiles从被监视的文件中删除一组特定的文件。

typeAcquisition

类型获取仅对 JavaScript 项目很重要。
类型获取
enable:提供在 JavaScript 项目中禁用类型获取的配置,默认:false。
include:使用 include 来指定应从绝对类型中使用哪些类型。
exclude:提供用于禁用 JavaScript 项目中某个模块的类型获取的配置
disableFilenameBasedTypeAcquisition:是否禁用基于文件名的类型获取,TypeScript 的类型获取可以根据项目中的文件名推断应该添加哪些类型,默认:false。

项目中as const断言的应用 

例举个简单的例子:

let m = 100;let n="abc";
let array = [m,n] ;let f = array[0];
f = 2000;
f="aaa";

上述代码中,变量f可以被赋值为数字和字符串两种类型。原因就是变量m和n是两种类型,赋值给数组后,数组类型为宽泛的string | number类型。

这是我们在代码中应该尽量避免的情况,可以用as const断言将宽泛的数据类型限定为具体的数值类型。

let m = 100;let n="abc";
let array = [m,n] as const;
let f = array[0];
f = 2000;
  1. 通过as const限定后,数组类型变为readonly [number, string]

  2. 准确来说,数组被限定成了一个元组,第一个数据的类型number,第二个是string

  3. f变量被数组的一个变量赋值后,其类型也就被限定成了一个数值类型。

  4. as const实现了从string | number到readonly [number, string]转化。

再看下as const在解构中应用 :

function asConst(){
let a:string = "abc";
let b = (firstname:string,lastname:string):string => firstname + lastname;
return [a,b];}

let [p,q] = asConst();
console.log( q("Green","Tom"));

上述代码会直接编译失败,原因是系统认为变量q的类型是string | ((firstname: string, lastname: string) => string),编译器并不能认定q是一个函数。

我们也可以使用as const 将函数asConst的返回值由宽泛的string | ((firstname: string, lastname: string) => any)转化成具体的readonly [string,(firstname: string, lastname: string) => string],从而显示的表明q是函数类型的变量。

function asConst(){
let a:string = "abc";
let b = (firstname:string,lastname:string):string => firstname + lastname;
return [a,b] as const;}

let [p,q] = asConst();
console.log( q("Green","Tom"));

上面代码也可以使用as做显示的类型转换,将宽泛的数组类型转换成具体的元组类型,代码如下:

function asConst(){
let a:string = "abc";
let b = (firstname:string,lastname:string):string => firstname + lastname;
return [a,b] as [typeof a , typeof b];}

let [p,q] = asConst();
console.log( q("Green","Tom"));

小结:

as const断言,可以将代码中宽泛的数据类型定义具体化,从而避免我们在开发过程中,因为定义过于宽泛,造成的各种数据处理的错误,通过精准的数据类型定义,更好的管理我们前端代码。

typescript泛型的理解与应用

type Partial<T> = { [p in keyof T]?: T[p] };
类比函数理解:这是一个将传入形参T类型的所有属性转换为可选属性的方法。
泛型的写法就是在标志符后面添加尖括号(<>),然后在尖括号里写形参,并在 body(函数体, 接口体或类体) 里用这些形参做一些逻辑处理。
需要被用到很多地方的时候,这个泛型很有用。

id 函数
function id<T>(arg:T):T => {return arg};
id 函数存在意义:
当我用到id的时候,你根据我传给你的类型进行推导。比如我传入的是 string,但是使用了 number 上的方法,你就应该报错。
需要作用到很多类型的时候,这个函数很有用。

这里用了一个 类型 T,这个 T 是一个抽象类型,只有在调用的时候才确定它的值。

常见泛型

Array<T>
默认参数 type A<T=string> = Array<T>

泛型支持函数嵌套

比如: type CutTail<Tuple extends any[]> = Reverse<CutHead<Reverse<Tuple>>>;
如上代码中, Reverse 是将参数列表反转,CutHead 是将数组第一项切掉。因此 CutTail 的意思就是将传递进来的参数列表反转,切掉第一个参数,然后反转回来。换句话说就是切掉参数列表的最后一项。 比如,一个函数是 function fn (a: string, b: number, c: boolean):boolean {},那么经过操作type cutTailFn = CutTail<typeof fn>,可以返回(a: string, b:number) => boolean。 具体实现可以参考Typescript 复杂泛型实践:如何切掉函数参数表的最后一个参数?[3]。 在这里,你知道泛型支持嵌套就够了。

泛型支持递归

比如我们最熟悉的单链表的定义就是递归的。

type ListNode<T> = {
    data: T,
    next: ListNode<T>|| null
  }

再比如 「HTMLElement」 的定义。

declare var HTMLElement :{
protopype: HTMLElement,
new():HEMLElement;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue3项目引入typescript总结 的相关文章

  • 在 contenteditable div 中选择范围

    我有一个contenteditablediv 和其中的一些段落 这是我的代码 div style border solid 1px black width 300px height 300px div Hello world div div
  • Eslint errorring 导入没有扩展名的 jsx

    我正在尝试在 es6 中导入 jsx 文件而不需要 jsx 扩展名 import LoginErrorDialog from LoginErrorDialogView Not import LoginErrorDialog from Log
  • 在新的 Google 协作平台 <嵌入 HTML> 中使用 localStorage 和 IndexedDB 不起作用

    我正在尝试将新的 Google 协作平台用于我开发的网页 但是 我在存储本地数据时遇到了问题 本地文件在 Windows 和 Apple safari chrome 中运行良好 从 Google 协作平台尝试一下 没有什么乐趣 此外 在 s
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 摩卡 - Chai Karma“套件未定义”

    我对 jscript tdd 很陌生 遇到了问题 希望有人能告诉我我在做什么 在浏览器中运行测试 通过 HTML 文件 一切正常 通过节点和业力运行它们我得到以下异常 我想在 node js 主机的 karma 中使用 Mocha 和 Ch
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 在 JavaScript 循环之外声明变量可以提高速度和内存?

    C 也有类似的问题 但我们没有看到 JavaScript 的任何问题 在循环内声明变量是否可以接受 假设循环有 200 次迭代 使用样本 2 相对于样本 1 是否有性能要求 内存和速度 我们使用 jQuery 来循环 它提高了我们将 var
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro

随机推荐

  • 智能驾驶数据集 合集

    智能驾驶数据集 集合 智能驾驶图像数据 No 1 103 300张驾驶员行为标注数据 驾驶员行为标注数据 总数据量103 300张 车内摄像头拍摄 且采集多年龄段 多时段 多种驾驶行为 关键点标注准确率不低于95 手势矩形框 人脸属性信息标
  • C++左值和右值

    这里有个误区 左值不是 left value 而是 location value 可寻址的值 右值不是 right value 而是 read value 只可读的值 所以 变量地址可读可写的是左值 只可读的是右值
  • 我的 Python.color() (Python 色彩打印控制)

    我的CSDN主页 My Python 学习个人备忘录 我的HOT博 自学并不是什么神秘的东西 一个人一辈子自学的时间总是比在学校学习的时间长 没有老师的时候总是比有老师的时候多 华罗庚 我的 Python color Python 色彩打印
  • 如何快速构造两个hashCode相同的字符串

    这要从hashCode的源码说起 String类hashCode的代码如下所示 public int hashCode int h hash if h 0 value length gt 0 char val value for int i
  • 【建议收藏】自动化测试框架开发教程

    在自动化测试项目中 为了实现更多功能 我们需要引入不同的库 框架 首先 你需要将常用的这些库 框架都装上 pip install requests pip install selenium pip install appium pip in
  • java 实现复制文件到指定目录

    将resource下的目录及文件 复制一份到指定目录 代码实现 import cn hutool core io FileUtil import org springframework core io Resource import org
  • adb shell 出现 insufficient permissions for device 参考网址:http://hi.baidu.com/iceliushuai/blog/item/1e50

    adb shell 出现 insufficient permissions for device 参考网址 http hi baidu com iceliushuai blog item 1e506160c5d01f48eaf8f801 h
  • 归纳演绎出的世界观

    题目略有写宽泛 刚读完 世界观 第一部分的内容 信息量有点大 迫切需要写篇读书笔记理清思路 归纳 和 演绎 方法 什么是归纳 Inductive 和演绎 Deductive 很多对于归纳 演绎的观点都是错误的 错误的以为两者是对立的 要么是
  • Spring MVC Controller配置方式

    Spring MVC 入门示例http cuisuqiang iteye com blog 2042931中 配置Controller时使用的是URL对应Bean的方式在SpringMVC中 对于Controller的配置方式有很多种 如下
  • Python—re正则表达式

    1 首先需导入模块import re 2 在一串字符中 findall方法可以获取全部能够匹配的片段 并把结果放在一个列表中 书写方式 re findall 正则表达式 规定匹配规则 被匹配的对象 3 使用findall方法匹配普通字符 4
  • 求k个数组包含每个数组至少一个元素的最小范围(待字闺中,备忘)

    有k个有序的数组 请找到一个最小的数字范围 使得这k个有序数组中 每个数组都至少有一个数字在该范围中 例如 1 4 10 15 24 26 2 0 9 12 20 3 5 18 22 30 所得最小范围为 20 24 其中 20在2中 22
  • 主流微服务全链路监控系统之战

    问题背景 随着微服务架构的流行 服务按照不同的维度进行拆分 一次请求往往需要涉及到多个服务 互联网应用构建在不同的软件模块集上 这些软件模块 有可能是由不同的团队开发 可能使用不同的编程语言来实现 有可能布在了几千台服务器 横跨多个不同的数
  • 抖店评价有礼怎么设置

    随着电商行业的不断发展和竞争的加剧 如何吸引消费者 提高店铺的口碑成为了每个卖家关注的焦点 其中 抖音电商平台的礼貌评价功能受到广大卖家的青睐 那么 如何设置抖店评论才能有礼貌呢 我们一起来讨论一下吧 如何设置抖店评价礼貌度 首先 开启礼貌
  • 工具--Typora详解

    工具 Typora详解 零 文章目录 一 MarkDown 1 MarkDown是什么 Markdown 是一种轻量级标记语言 它允许人们使用易读易写的纯文本格式编写文档 Markdown 语言在 2004 由约翰 格鲁伯 英语 John
  • opengles reference card

    https www khronos org files opengles31 quick reference card pdf https www khronos org opengles sdk docs reference cards
  • mac系统ssh文件位置

    open ssh 转载于 https www cnblogs com thinkingthigh p 8874204 html
  • js的数字和字符串区分不开问题

    我们在开发的时候经常会出现 if this name 1 执行对应逻辑 但是就是在这个判断的时候 就是不知道该写成 if this name 1 执行对应逻辑 还是写成 if this name 1 执行对应逻辑 这是一个坑 代码调试时候遇
  • 第十四届蓝桥杯模拟赛(第三期)——Java版

    第一题 请找到一个大于 2022 的最小数 这个数转换成十六进制之后 所有的数位 不含前导 0 都为字母 A 到 F 请将这个数的十进制形式作为答案提交 public class Main public static void main S
  • MacBook m1pro在conda环境关于架构出现过的问题

    回想一下十月份的时候刚拿到电脑做了点啥 刚开始没有进行转换架构的虚拟环境的设置 导致好像是安装pyqt5 一直失败 总之查了半天 最后指向似乎是架构问题 然后利用https www bilibili com read cv13742031
  • vue3项目引入typescript总结

    tsconfig json详细配置 根选项 include 指定被编译文件所在的目录 exclude 指定不需要被编译的目录 extends 指定要继承的配置文件 files 指定被编译的文件 references 项目引用 是 TS 3