首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

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

这几个 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、不是

24620

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函数有<em>两个</em>签名.../lib/main.d.ts" 但types/typings都是非npm标准字段,所以建议使用第一种方式 安装 如果依赖的功能模块没附带types,可以通过TypeSearch搜索想要的typings模块

2.8K30

TypeScript超详细入门教程(上)

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

4.1K41

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.1K10

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

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

2.2K20

typeScript 配置文件该怎么写?

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

1.9K20

从C#到TypeScript - 类

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

1K90

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,但是提供的组件方法、属性过少,整个框架还不是很丰满。...而且组件对于系统调用不是很好,在论坛看到不少开发者反馈如何调用通讯录,目前系统调用就支持照相机、文件、定位。

3.9K10

我读 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 的形式,只是我们很少用。

86410

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 属性会怎么样呢?

2K20

TypeScript 5.3

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

17710

TypeScript 演化史 -- 6】对象扩展运算符和 rest 运算符及 keyof 和查找类型

TypeScript 2.1 增加了对 对象扩展运算和 rest 属性提案的支持,该提案在 ES2018 中标准化。可以以类型安全的方式使用 rest 和 spread 属性。...website; // Type string twitterHandle; // Type string 这些都是正确的,但这到现在啥新鲜的。...虽然 twitterHandle 变量是一个普通的字符串,但 rest 变量是一个对象,其中包含剩余两个未被解构的属性。 对象扩展属性 假设咱们希望使用 fetch() API 发出 HTTP 请求。...如果一个属性同时出现在两个对象中,则后分配的会替换前面的。 当然,TypeScript 理解这种顺序。...| "due",而不是使用 keyof,但是这样做很麻烦,容易出错,而且维护起来很麻烦。

2.5K30

TypeScript 演化史 — 第六章】对象扩展运算符和 rest 运算符及 keyof 和查找类型

website; // Type string twitterHandle; // Type string 这些都是正确的,但这到现在啥新鲜的。...虽然 twitterHandle 变量是一个普通的字符串,但 rest 变量是一个对象,其中包含剩余两个未被解构的属性。 对象扩展属性 假设咱们希望使用 fetch() API 发出 HTTP 请求。...如果一个属性同时出现在两个对象中,则后分配的会替换前面的。 当然,TypeScript 理解这种顺序。...一个对象的不同属性可以有完全不同的类型,咱们甚至不知道 obj 是什么样子的。 那么如何在 TypeScript 中编写这个函数呢?...| "due",而不是使用 keyof,但是这样做很麻烦,容易出错,而且维护起来很麻烦。

3.1K50
领券