首页
学习
活动
专区
圈层
工具
发布

有种尴尬叫既不是你的错,也不是我的错

此图出自 《Windows Internals 7th》,可以翻译成《深入解析Windows操作系统 第7版》,也可以翻译成《Windows操作系统原理 第7版》,双11我50多买了正版上册(目前只有英文版...目前来说,Win7和2008R2已经很不安全了,漏洞很多,微软2020年1月14日已经停止对Win7和2008R2的安全支持,也就是说后续发现的漏洞不会有补丁了,已经发现的性能瓶颈也不会再优化了,有新的硬件设备...,驱动兼容性也很难提升了。...云厂商也做了生成随机复杂密码的设计,但是那些注定会被入侵的人鬼使神差不选这种,因为云厂商给了他们其他选项,安全隐患就出在其他选项里。 有种尴尬叫既不是你的错,也不是我的错,是产品的错。...如果你用低版本Windows系统,自己又不是安全专家,还是安装个杀毒防护软件、设置个复杂密码吧,另外,安全组不要放行所有,建议只放行外网需要访问的端口(数据库不要放行外网访问)。

1.8K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    这几个 TypeScript 类型,90% 的人说不出原因

    有这样几个 TypeScript 类型,大家先试着猜下 res 都是啥: 第一个: 传入的类型参数为联合类型 1 | 'a',问 res 是啥 type Test = T extends number...你说了这么多,我怎么知道是不是真的呢,万一是你编的呢? 有怀疑很正常,这也是应该有的态度,不过这些确实都是真的,接下来我从源码来验证下。...1 : 2; type res = Test; TypeScript 在处理到条件类型 Conditional Type 的时候,会设置一个 isDistributive 的属性,...看下: 按位与的结果是 0,也说明了它不是 union 和 never。...继续往下走会发现 Union 和 Never 在这里分叉了: 然后 mapType 里对 never 类型直接就给返回了该类型,也就是 never: 这就是为啥结果既不是 trueType、也不是

    30420

    d.ts

    :适用于暴露出一个Function的module类库 module-class.d.ts:适用于暴露出一个Class的module类库 module.d.ts:适用于一般module类库(暴露出的东西既不是...Function也不是Class) module-plugin.d.ts:适用于module plugin类库(A module plugin changes the shape of another...P.S.另外,声明文件也存在全局声明冲突的问题,建议通过namespace解决 三.引用方式 不同类型的声明文件对应的引用方式也不同,global类库声明通过/// <reference types="...function getWidget(n: number): Widget; declare function getWidget(s: string): Widget[]; getWidget函数有两个签名.../lib/main.d.ts" 但types/typings都是非npm标准字段,所以建议使用第一种方式 安装 如果依赖的功能模块没附带types,可以通过TypeSearch搜索想要的typings模块

    3.1K30

    null 和 undefined 的区别!

    undefined是 "当一个变量没有被赋值时使用" null "表示有意不存在任何对象值" 1.2 两个非值--一个无法消除的错误 在JavaScript中拥有两个非值现在被认为是一个设计错误(甚至被...因此,如果null意味着 "不是一个对象",那么JavaScript也需要一个初始化值,意味着 "既不是一个对象也不是一个原始值"。这个初始化值就是 undefined。...let myVar; assert.equal(myVar, undefined); 如果一个属性.unknownProp丢失,访问该属性会产生undefined的值。...5.2 undefined 或 null 都是“关闭”值 例如,我们可能希望一个属性file.title是一个字符串或 "关闭"(文件没有标题)。有几种方法可以实现这一点。...(而不是对整个文件对象)。

    1.4K10

    TypeScript超详细入门教程(上)

    这里你传入一个对象,既不是字符串也不是数值,所以原样返回这个对象,编译器就知道你的res是对象 { a: ‘a’, b: ‘b’ } 啦。所以当你输入res然后输入 ....2.2.7 拓展阅读 这要讲的不是TypeScript中新增的基本类型,而是高级类型中的两个比较常用类型:联合类型和交叉类型。...可以看到,传入的两个参数分别是带有属性 name 和 age 的两个对象,所以它俩的交叉类型要求返回的对象既有 name 属性又有 age 属性。...,这个值和任何一个值都不等,虽然我们传入的标识字符串都是”lison”,但是确实两个不同的值。...在TypeScript中,下面两个例子都是一样的会报a.getName is not a function错误。

    4.8K41

    TypeScript 官方手册翻译计划【二】:普通类型

    这种语法也可以用于任意类型(比如 string[] 表示数组元素都是字符串类型)。它还有另一种写法是 Array,两者效果是一样的。...不过,在大多数情况下,注解并不是必需的。TypeScript 会尽可能地在你的代码中自动进行类型推断。...举个例子,有一个屋子的人都很高,而且戴帽子,另一个屋子的人都是西班牙人,而且也戴帽子,那么两个屋子的人放到一起,我们可以得到的唯一事实就是:每个人肯定都戴着帽子。...它可以确保对象的所有属性都被赋予了一个字面量类型,而不是采用类似 string 或者 number 这样较为通用的类型。...null 和 undefined JavaScript 中有两个原始值用于表示缺少的或者没有初始化的值:null 和 undefined。 TypeScript 对应地也有两个名字和它们一样的类型。

    2.7K20

    NativeScript和React Native对比

    既不是一种新型的JavaScript语言,也不是原生功能的封装器。NativeScript 的思路就是使用移动平台的 JavaScript 引擎来进行跨平台开发。...用JavaScript(或TypeScript,CoffeeScript等)语言编写应用,之后在安卓平台用V8,在iOS和Windows Phone上用WebKit JavaScriptCore解释应用...2.5、组件支持 RN:RN在组件支持上虽然也不是很完善,但是给了开发者很大空间可以自定义,同时因为RN的实现原理,可以很方便的设置相应组件的属性 NativeScript:组件支持不够完善,NativeScript...中虽然已经支持了很多组件,比如说tabview、srcollview、button,但是提供的组件方法、属性过少,整个框架还不是很丰满。...而且组件对于系统调用也不是很好,在论坛看到不少开发者反馈如何调用通讯录,目前系统调用就支持照相机、文件、定位。

    4.7K10

    从C#到TypeScript - 类

    从C#到TypeScript - 类 在ES6之前Javascript的类都是用function定义的,ES6把类关键字正式加进来,虽说其实也还是function,不过代码可读性上好了不少。...TypeScript同样支持class,并且和C#也非常相似,下面来看看: 类 同C#一样,由构造函数,属性,方法组成,属性和方法有三个级别的访问权限:private, protected, public...上面的User类有两个成员,而且都是从构造函数赋值的,也就是其实构造函数的参数就是类的成员,这就是参数属性。...类里面的那两个属性其实可以不用写,只要在构造函数的参数上加上操作限定符,TypeScript就会自动为参数生成属性,来重构下上面的User。..._name = name; } } 静态属性和方法 上面说的都是实例成员,TypeScript也支持静态成员,不用实例化,而是通过类名来访问。

    1.4K90

    typeScript 配置文件该怎么写?

    大多是“讲是什么,怎么用“,而不是”讲为什么,讲原理“。 大多数内容比较枯燥,趣味性比较低。都是干巴巴的文字,没有图片,缺乏能够引起强烈共鸣的例子。...❞ 注意,我的系列文章基本不会讲 API,因此需要你有一定的 TypeScript 使用基础,推荐两个学习资料。.../docs/home 结合这两个资料和我的系列教程,掌握 TypeScript 指日可待。...(TypeScript 提供的部分 lib) 输出相关 outDir 和 outFile 这两个配置则是告诉 TypeScript 将文件生成到哪里。...^_^ ❞ 总结 tsconfig 就是一个 JSON 文件,TypeScript 会使用该文件来决定如何编译和检查 TypeScript 项目。和 babel 类似,甚至很多配置项都是相通的。

    2.4K20

    CSS 面试要点:盒模型

    IE 模型元素宽度 width = content + padding + border: 而标准模型的元素宽度 width = content: 二者的高度计算都是相同的。...# CSS 如何设置盒模型宽高 在 CSS3 中,可以通过属性 box-sizing: content-box | border-box 来设置盒模型为 标准模型(content-box) 和 IE 模型....width/height 取得最终渲染后的宽高 dom.getBoundClientRect().width/height 取得最终渲染后的宽高,还可以取得相对于视窗的上下左右的距离 # 边距重叠 两个垂直外边距相遇时...overflow 值不为 visible、clip 的元素 display 值为 flow-roo 的元素 弹性元素(display 值为 flex 或 inline-flex 元素的直接子元素),如果它们本身既不是...flex、grid 也不是 table 容器 网格元素(display 值为 grid 或 inline-grid 元素的直接子元素),如果它们本身既不是 flex、grid 也不是 table 容器

    73260

    【离散数学】单射、满射与双射

    2、映射的分类 2.1 单射 所有被X里的元素指向的Y里的元素,都是只被一个X的元素所指向的,而没有被两个或更多X的元素所指向,那么这种映射关系就叫单射(英:injection,日:単射(たんしゃ))。...2.4 既非单射也非满射,但为映射 还有一种映射关系,既不是单射也不是满射。Y中有元素没被X的元素所指向,而被指向的Y的元素,也不是所有都只被一个X元素所指向(存在被多个X元素指向的)。 举个例子。...但是,既不是每个棋盘都必被棋手所指向,也不是每个被指向的棋盘都无一例外只被一个棋手所指向的,所以这种映射关系,既不是满射,也不是单射。 3、你掌握了吗? 你学废了吗?...主键,我觉得大概可能是这个属性啊。为什么呢?因为……我也说不上来,大概,就是因为那个,它是唯一的。...啊不,它可以唯一确定一个人……emmm,一个人只拥有一个这种属性,这种属性也只对应一个人……emmmm,大概也许就是这样吧,我也不是太清楚,我也不太确定,你自己再考虑考虑吧!”

    20.7K31

    我读 Typescript 源码的秘诀都在这里了

    这篇文章整理了我是怎么读 Typescript 源码的,类似的技巧也可以用于其他库的源码阅读。...b 类型是 UnionType,联合类型,types 属性保存了它所包含的类型,这里是两个 LiteralType T extends boolean 这部分是一个 ConditionType,有 checkType...有 typeName 和 typeArguments 两个属性,typeName 就是它引用的类型 Test,typeArguments 就是泛型参数的值,这里是 UnionType。...:microsoft/TypeScript.git 复制代码 然后可以看到 lib 目录下有 tsc.js 和 typescript.js,这两个分别是 ts 的命令行和 api 的入口。...接下来就是我的秘密武器了,用 typescript compiler api。 typescript compiler api ts 除了命令行工具的入口外,也提供了 api 的形式,只是我们很少用。

    1.2K10

    TypeScript 官方手册翻译计划【三】:类型收缩

    由于 string 是 x 和 y 共有的类型,所以 TypeScript 知道 x 和 y 在第一个逻辑分支中肯定都是 string 类型。 同样的,我们也可以检查特定的字面量值(和变量相对)。...Bird) { if ("swim" in animal) { return animal.swim(); } return animal.fly(); } 再次重申,可选的属性在收缩时会同时出现在两个分支中...举个例子,人类既能游泳也能飞(我指的是通过交通工具),因此在 in 检查中,这个类型会同时出现在两个分支中: type Fish = { swim: () => void }; type Bird =...(); } 注意,TypeScript 不仅知道在 if 分支中 pet 是 Fish,也知道在 else 分支中其对应的类型,因为不是 Fish 那就肯定是 Bird 了。...两种解释都是合理的,但只有后者会在禁用 strictNullChecks 的情况下仍然抛出一个错误。 那么,如果这时候我们再次检查 kind 属性会怎么样呢?

    2.2K20

    TypeScript 5.3

    请注意,导入属性是早期称为“导入断言”的提案的演变 最明显的区别是使用with关键字而不是assert关键字。...通常这些都是不必要的比较,但您可能更喜欢它作为一种风格,或者避免围绕JavaScript真实性的某些问题。 无论如何,以前的TypeScript在执行收缩时无法识别这样的表单。...问题是它们可以互换使用,因为super只对在原型上声明的成员有效,而不是实例属性。...尽管如此,这两个包是不同的,有很多重叠,在包中重复代码。 更重要的是,由于自动导入或肌肉记忆,始终使用一个而不是另一个可能具有挑战性。...意外加载两个模块太容易了,代码可能无法在API的不同实例上正常工作。 即使它确实有效,加载第二个bundle也会增加资源使用。 鉴于此,我们决定将两者合并。

    58610
    领券