自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 资源 (11)
  • 收藏
  • 关注

转载 如何创建高质量的TypeScript声明文件(七) - 该做什么和不该做什么

转载 如何创建高质量的TypeScript声明文件(七) - 该做什么和不该做什么 该做什么和不该做什么 一般类型 数字,字符串,布尔值和对象 不要使用Number,String,Boolean或Object类型。 这些类型指的是在JavaScript代码中几乎从不正确使用的非原始盒装对象。 /* WRONG */ function reverse(s: String): String...

2018-11-14 09:02:15 468

转载 如何创建高质量的TypeScript声明文件(六) - 示例

转载 如何创建高质量的TypeScript声明文件(六) - 示例 继续上篇文章【如何创建高质量的TypeScript声明文件(五) - 示例】 上篇文章介绍了 全局变量 全局函数 具有属性的对象 重载函数 可重用类型(接口) 几种示例 下面继续分享剩余的几种示例 可重用类型(类型别名) 组织类型 类 可重用类型(类型别名) 文档 在需要问候语的任何地方,您可以提供字符串,...

2018-11-11 15:23:15 366

转载 如何创建高质量的TypeScript声明文件(五) - 示例

转发 如何创建高质量的TypeScript声明文件(五) - 示例 前面四篇文章一起介绍了在声明文件中关于库结构的一些介绍,本篇文章之后分享一些API的文档,还有它们的使用示例,并且阐述如何为他们创建声明文件 这些示例以大致递增的复杂度顺序排序。 全局变量 全局函数 具有属性的对象 重载函数 可重用类型(接口) 可重用类型(类型别名) 组织类型 类 示例 全局变量 文档 ...

2018-11-09 10:27:36 471

转载 如何创建高质量的TypeScript声明文件(四)

转发 如何创建高质量的TypeScript声明文件(四) 继续上篇文章[如何创建高质量的TypeScript声明文件(三)] 对UMD库的依赖性 来自全局库 如果您的全局库依赖于UMD模块,请使用/// <reference types指令: /// <reference types="moment" /> function getThing(): moment; ...

2018-11-07 09:34:28 458

转载 如何创建高质量的TypeScript声明文件(三)

转载 如何创建高质量的TypeScript声明文件(三) 继续上篇文章[如何创建高质量的TypeScript声明文件(二)] 模块插件或UMD插件 模块插件更改另一个模块(UMD或模块)的形状。 例如,在Moment.js中,时刻范围为时刻对象添加了一个新的范围方法。 出于编写声明文件的目的,无论要更改的模块是普通模块还是UMD模块,您都将编写相同的代码。 模板 使用module-pl...

2018-11-06 14:05:46 330

转载 如何创建高质量的TypeScript声明文件(二)

转载 如何创建高质量的TypeScript声明文件(二) 继续上篇文章[如何创建高质量的TypeScript声明文件(一)] 模块化库 有些库只能在模块加载器环境中工作。 例如,因为express仅适用于Node.js,必须使用CommonJS require函数加载。 ECMAScript 2015(也称为ES2015,ECMAScript 6和ES6),CommonJS和Require...

2018-11-05 15:40:45 376

转载 如何创建高质量的TypeScript声明文件(一)

转载 如何创建高质量的TypeScript声明文件(一) 库结构 “库结构”可帮助您了解常用库格式以及如何为每种格式编写正确的声明文件。 如果您正在编辑现有文件,则可能不需要阅读这篇文章。 新声明文件的作者必须阅读本篇文章以正确理解库的格式如何影响声明文件的写入。 介绍 从广义上讲,构造声明文件的方式取决于库的使用方式。 有许多方法可以在JavaScript中提供供消费的库,你需要编写你的...

2018-11-04 22:12:04 802

转载 TypeScript基础入门之Javascript文件类型检查(五)

转发 TypeScript基础入门之Javascript文件类型检查(五) 继续上篇文章【TypeScript基础入门之Javascript文件类型检查(四)】 @constructor 编译器根据此属性赋值推断构造函数,但如果添加@constructor标记,则可以更好地检查更严格和更好的建议: /** * @constructor * @param {number} data ...

2018-11-01 14:33:43 306

转载 TypeScript基础入门之Javascript文件类型检查(三)

转发 TypeScript基础入门之Javascript文件类型检查(三) 继续上篇文章【TypeScript基础入门之Javascript文件类型检查(二)】 支持JSDoc 下面的列表概述了使用JSDoc注释在JavaScript文件中提供类型信息时当前支持的构造。 请注意,尚不支持下面未明确列出的任何标记(例如@async)。 @type @param (or @arg or @...

2018-10-31 09:48:19 312

转载 TypeScript基础入门之Javascript文件类型检查(二)

转发 TypeScript基础入门之Javascript文件类型检查(二) 继续上篇文章【TypeScript基础入门之Javascript文件类型检查(一)】 对象文字是开放式的 在.ts文件中,初始化变量声明的对象文字将其类型赋予声明。不能添加未在原始文本中指定的新成员。此规则在.js文件中放宽;对象文字具有开放式类型(索引签名),允许添加和查找最初未定义的属性。例如: var ob...

2018-10-30 10:39:21 481

转载 TypeScript基础入门之Javascript文件类型检查(一)

转载 TypeScript基础入门之Javascript文件类型检查(一) TypeScript 2.3及更高版本支持使用--checkJs在.js文件中进行类型检查和报告错误。 您可以通过添加//@ts-nocheck注释来跳过检查某些文件; 相反,您可以通过在不设置--checkJs的情况下向其添加//@ts-check注释来选择仅检查几个.js文件。 您还可以通过在前一行添加//@ts-...

2018-10-26 22:08:16 1061

转载 TypeScript基础入门之三重斜线指令

转载 TypeScript基础入门之三重斜线指令 三斜杠指令是包含单个XML标记的单行注释。 注释的内容用作编译器指令。 三斜杠指令仅在其包含文件的顶部有效。 三重斜杠指令只能在单行或多行注释之前,包括其他三重斜杠指令。 如果在声明或声明之后遇到它们,则将它们视为常规单行注释,并且没有特殊含义。 /// <reference path ="..."/> /// <refe...

2018-10-25 22:41:36 1133

转载 TypeScript基础入门之Mixins

转载 TypeScript基础入门之Mixins 介绍 与传统的OO层次结构一起,另一种从可重用组件构建类的流行方法是通过组合更简单的部分类来构建它们。 您可能熟悉Scala等语言的mixin或traits的概念,并且该模式在JavaScript社区中也已经普及。 Mixin示例 在下面的代码中,我们将展示如何在TypeScript中对mixin进行建模。 在代码之后,我们将分解其工作原理...

2018-10-24 22:53:00 761

转载 TypeScript基础入门之装饰器(三)

转载 TypeScript基础入门之装饰器(三) 继续上篇文章[TypeScript基础入门之装饰器(二)] 访问器装饰器 Accessor Decorator在访问器声明之前声明。 访问器装饰器应用于访问器的属性描述符,可用于观察,修改或替换访问者的定义。 访问器装饰器不能在声明文件中使用,也不能在任何其他环境上下文中使用(例如在声明类中)。 注意: TypeScript不允许为单个成...

2018-10-23 23:02:51 886

转载 TypeScript基础入门之装饰器(二)

转发 TypeScript基础入门之装饰器(二) 装饰器求值 如何应用装饰器应用于类内的各种声明的顺序: 1. 对每个实例成员应用参数装饰器,后跟Method,Accessor或Property Decorators。 2. 对每个静态成员应用参数装饰器,后跟Method,Accessor或Property Decorators。 3. 参数装饰器应用于构造函数。 4. 类装饰器适用于该类。...

2018-10-22 22:00:48 443

转载 TypeScript基础入门之装饰器(一)

转发 TypeScript基础入门之装饰器(一) 介绍 随着TypeScript和ES6中Classes的引入,现在存在某些场景需要额外的功能来支持注释或修改类和类成员。 装饰器提供了一种为类声明和成员添加注释和元编程语法的方法。 装饰器是JavaScript的第2阶段提案,可作为TypeScript的实验性功能使用。 注意: 装饰器是一种实验性功能,可能在将来的版本中发生变化。 要为...

2018-10-21 22:49:06 883

转载 TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型 declare namespace JSX {   interface IntrinsicElements {     foo: { bar?: boolean }   ...

2018-10-20 22:18:00 3342

转载 TypeScript基础入门之JSX(一)

转发 TypeScript基础入门之JSX(一) 介绍 JSX是一种可嵌入的类似XML的语法。 它旨在转换为有效的JavaScript,尽管该转换的语义是特定于实现的。 JSX在React框架中越来越受欢迎,但此后也看到了其他实现。 TypeScript支持嵌入,类型检查和直接编译JSX到JavaScript。 基本用法 要使用JSX,您必须做两件事。 1. 使用.tsx扩展名命名您的文件...

2018-10-19 21:20:28 4472

转载 TypeScript基础入门之声明合并(三)

转发 TypeScript基础入门之声明合并(三) 声明合并 将命名空间与类,函数和枚举合并 命名空间足够灵活,也可以与其他类型的声明合并。 为此,命名空间声明必须遵循它将与之合并的声明。 生成的声明具有两种声明类型的属性。 TypeScript使用此功能来模拟JavaScript以及其他编程语言中的某些模式。 将命名空间与类合并 这为用户提供了一种描述内部类的方法。 class A...

2018-10-18 20:31:59 1839

转载 TypeScript基础入门之声明合并(二)

转发TypeScript基础入门之声明合并(二) 声明合并 合并命名空间 与接口类似,同名的命名空间也将合并其成员。 由于名称空间同时创建了名称空间和值,因此我们需要了解它们是如何合并的。 要合并命名空间,每个命名空间中声明的导出接口的类型定义本身已合并,形成一个内部具有合并接口定义的命名空间。 要合并命名空间值,在每个声明站点,如果已存在具有给定名称的命名空间,则通过获取现有命名空间并...

2018-10-17 15:14:09 321

转载 TypeScript基础入门之声明合并(一)

转发 TypeScript基础入门之声明合并(一) 声明合并 介绍 TypeScript中的一些独特概念描述了类型级别的JavaScript对象的形状。 TypeScript特别独特的一个例子是"声明合并"的概念。 在使用现有JavaScript时,理解此概念将为您提供优势。 它还为更高级的抽象概念打开了大门。 出于本文的目的,"声明合并"意味着编译器将使用相同名称声明的两个单独声明合并到...

2018-10-16 22:17:43 2286

转载 TypeScript基础入门之模块解析(三)

转发 TypeScript基础入门之模块解析(三) 继续上文[TypeScript基础入门之模块解析(二)] 跟踪模块解析 如前所述,编译器可以在解析模块时访问当前文件夹之外的文件。 在诊断模块未解析的原因或解析为错误定义时,这可能很难。 使用--traceResolution启用编译器模块分辨率跟踪可以深入了解模块解析过程中发生的情况。 假设我们有一个使用typescript模块的示例应...

2018-10-15 14:45:06 473

转载 nginx + express 代理配置

转发 nginx + express 代理配置 在node项目中,经常会有遇到需要获取访问URL地址的时候,同时也会遇到协议的问题,有时候,当我们的网站是https的时候,也希望在express中或者其他的node框架中获取到的URL地址协议也是https。 但是奇怪的是express通过req.protocol获取到的仍然是http,经过试验通过nginx的配合能够很好的解决此方案。 示例如...

2018-10-14 22:14:53 2563

转载 TypeScript基础入门之模块解析(二)

转发 TypeScript基础入门之模块解析(二) 模块解析 Base URL 使用baseUrl是使用AMD模块加载器的应用程序中的常见做法,其中模块在运行时"deployed"到单个文件夹。 这些模块的源代码可以存在于不同的目录中,但构建脚本会将它们放在一起。 设置baseUrl通知编译器在哪里可以找到模块。 假定所有具有非相对名称的模块导入都相对于baseUrl baseUrl的值...

2018-10-13 23:25:07 883

转载 Express + TypeScript开发微信应用

转载 Express + TypeScript开发微信应用 在进行微信开发之前,首先需要注册一个微信公众号或者是订阅号,这个是最基本的操作,没有这一步,后面的的步伐很难走。 注册完微信之后,获取appId和appSecret,有了这两个就可以了 第一步、创建项目 $ mkdir ts_node_wx $ cd ts_node_wx && npm init  第二步、安装依...

2018-10-11 09:10:51 773

转载 TypeScript基础入门之模块解析(一)

转载 TypeScript基础入门之模块解析(一) 模块解析 本节假设有关模块的一些基本知识。有关更多信息,请参阅模块文档。 模块解析是编译器用来确定导入所引用内容的过程。 考虑一个导入语句,如import { a } from "moduleA"; 为了检查a的任何使用,编译器需要确切地知道它代表什么,并且需要检查它的定义moduleA。 此时,编译器将询问"moduleA的类型是什...

2018-10-09 21:34:44 799

转载 TypeScript基础入门之命名空间和模块

转载TypeScript基础入门之命名空间和模块 命名空间和模块 关于术语的说明:值得注意的是,在TypeScript 1.5中,命名法已经改变。 "内部模块"现在是"命名空间"。 "外部模块"现在只是"模块",以便与ECMAScript 2015的术语保持一致(即module X {相当于现在首选的namespace X {)。 介绍 本文概述了使用TypeScript中的命名空间和模块...

2018-10-08 22:43:09 1088

转载 TypeScript基础入门之命名空间(三)

转载 TypeScript基础入门之命名空间(三) 继续上篇文章[TypeScript基础入门之命名空间(二)] 别名 另一种可以简化名称空间使用方法的方法是使用import q = x.y.z为常用对象创建较短的名称。 不要与用于加载模块的import x = require("name")语法相混淆,此语法只是为指定的符号创建别名。 您可以将这些类型的导入(通常称为别名)用于任何类型的标...

2018-10-07 21:17:05 363

转载 TypeScript基础入门之命名空间(二)

转载 TypeScript基础入门之命名空间(二) 继续上篇文章[TypeScript基础入门之命名空间(一)] 跨文件拆分 当应用变得越来越大时,我们需要将代码分离到不同的文件中以便于维护。 多文件名称空间 现在,我们把Validation命名空间分割成多个文件。 尽管是不同的文件,它们仍是同一个命名空间,并且在使用的时候就如同它们在一个文件中定义的一样。 因为不同文件之间存在依赖关系...

2018-10-06 23:25:13 283

转载 TypeScript基础入门之命名空间(一)

转载 TypeScript基础入门之命名空间(一) 命名空间 关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 “内部模块”现在称做“命名空间”。 “外部模块”现在则简称为“模块”,这是为了与 ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {)。 介绍 这篇文章描...

2018-10-05 22:44:46 372

转载 TypeScript基础入门之模块(五)

转载 TypeScript基础入门之模块(五) 构建模块的指南 导出尽可能接近顶级 使用您导出的东西时,模块的消费者应尽可能少地摩擦。 添加太多级别的嵌套往往很麻烦,因此请仔细考虑如何构建事物。 从模块导出命名空间是添加太多嵌套层的示例。 虽然名称空间有时会有用,但在使用模块时会增加额外的间接级别。 这很快就会成为用户的痛点,而且通常是不必要的。 导出类上的静态方法也有类似的问题 - 类...

2018-10-05 06:39:02 615

转载 TypeScript基础入门之模块(四)

转发 TypeScript基础入门之模块(四) 使用其他JavaScript库 要描述不是用TypeScript编写的库的形状,我们需要声明库公开的API。 我们称之为未定义实现"环境"的声明。 通常,这些是在.d.ts文件中定义的。 如果您熟悉C/C++,可以将它们视为.h文件。 我们来看几个例子。 外部模块 在Node.js中,大多数任务是通过加载一个或多个模块来完成的。 我们可以使用...

2018-10-03 07:38:49 332

转载 TypeScript基础入门之模块(三)

转载 TypeScript基础入门之模块(三) 可选模块加载和其他高级加载方案 在某些情况下,您可能只想在某些条件下加载模块。在TypeScript中,我们可以使用下面显示的模式来实现此模式和其他高级加载方案,以直接调用模块加载器而不会丢失类型安全性。 编译器检测是否生成的JavaScript中使用了每个模块。如果模块标识符仅用作类型注释的一部分而从不用作表达式,则不会为该模块生成requi...

2018-10-02 23:19:52 359

转载 TypeScript基础入门之模块(二)

转载 TypeScript基础入门之模块(二) 生成模块代码 根据编译期间指定的模块目标,编译器将为Node.js(CommonJS),require.js(AMD),UMD,SystemJS或ECMAScript 2015本机模块(ES6)模块加载系统生成适当的代码。 有关生成的代码中的define, require 和 register调用的更多信息,请参阅每个模块加载器的文档。 下面这...

2018-10-02 09:05:35 289

转载 TypeScript基础入门之模块(一)

转发 TypeScript基础入门之模块(一) 模块 关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 "内部模块"现在称做"命名空间"。 "外部模块"现在则简称为"模块",这是为了与 ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {)。 介绍 从ECMAScr...

2018-09-30 13:21:42 271

转载 TypeScript基础入门之迭代器和生成器

转发 TypeScript基础入门之迭代器和生成器 迭代性 如果对象具有Symbol.iterator属性的实现,则该对象被视为可迭代。 一些内置类型,如Array,Map,Set,String,Int32Array,Uint32Array等,已经实现了Symbol.iterator属性。 对象上的Symbol.iterator函数负责返回值列表以进行迭代。 for..of语句 for.....

2018-09-28 13:28:38 785

转载 TypeScript基础入门之Symbols

转发TypeScript基础入门之Symbols 介绍 自ECMAScript 2015起,symbol成为了一种新的原生类型,就像number和string一样。 symbol类型的值是通过Symbol构造函数创建的。 let sym1 = Symbol(); let sym2 = Symbol("key"); // 可选的字符串key Symbols是不可改变且唯一的。 let...

2018-09-28 09:47:20 398

转载 TypeScript项目引用(project references)

转发 TypeScript项目引用(project references) TypeScript新特性之项目引用(project references) 项目引用是TypeScript 3.0中的一项新功能,允许您将TypeScript程序构建为更小的部分。 通过这样做,您可以大大缩短构建时间,实现组件之间的逻辑分离,并以新的更好的方式组织代码。 我们还为tsc引入了一种新模式,即--b...

2018-09-25 22:18:48 5602

转载 TypeScript基础入门之高级类型的映射类型

转发 TypeScript基础入门之高级类型的映射类型 高级类型 映射类型 一个常见的任务是将一个已知的类型每个属性都变为可选的: interface PersonPartial {     name?: string;     age?: number; } 或者我们想要一个只读版本: interface PersonReadonly {     readonly name: s...

2018-09-24 20:38:10 1221

转载 TypeScript基础入门之高级类型的索引类型(Index types)

转发 TypeScript基础入门之高级类型的索引类型(Index types) 高级类型 索引类型(Index types) 使用索引类型,编译器就能够检查使用了动态属性名的代码。 例如,一个常见的JavaScript模式是从对象中选取属性的子集。 function pluck(o, names) {     return names.map(n => o[n]); } 下面是...

2018-09-23 22:21:43 6007

网站检测工具10款-网站检测工具10款

也许你会认为网站检测工具只是给网页开发人员使用的,因为只有他们经常会对自己的作品检测语法、W3C、浏览器兼容的问题,个人博客没有必要吧?如果你是这样认为,那么就错了。WORDPRESS等虽然提供了近乎智能化的博客平台,但由于你经常尝鲜式的更换各种插件,难免会出现更改不当造成的网页问题,如果你知道了以下工具就可以用它来检测,至少你明白了错误在哪里后也可以为你的技术支持人员提供一个按图索骥的思路。本文来自:10 Awesome free site validation tools online,喜欢看英文的可以自已查阅,不过,我在文章后面增加了一个CSS工具集和一个SEO工具集作为网站检测工具的补充。

2011-07-06

rhel5安装gcc c++

默认安装且没有选择安装开发工具库 (其他版本安装方法类似,不同版本的可以CD到光盘的 Server 目录用以下命令查找安装包) ls ./ | grep (软件包名) 首先安装GCC: rpm -ivh kernel-headers-2.6.18-194.el5.x86_64.rpm rpm -ivh glibc-headers-2.5-49.x86_64.rpm rpm -ivh glibc-devel-2.5-49.x86_64.rpm rpm -ivh libgomp-4.4.0-6.el5.x86_64.rpm rpm -ivh gcc-4.1.2-48.el5.x86_64.rpm

2011-07-05

ubuntu 扩展库的安装

安装CURL扩展 I. 生成动态链接库文件.SO 方法如下: 方法1. apt-get install php5-curl 方法2. 去PHP网站下载tar包,phpize本地编译生成.so 方法3. pear方式安装,通过pecl命令去在线下载编译生成.so 方法1在ubuntu下是最简单的,命令执行完会告知.so所在目录 II. 配置php.ini 打开php.ini,指定extension_dir目录,如果extension_dir = '/usr/lib',那么接下来把生成的.so文件(如curl.so)复制到/usr/lib目录下,并且加入一个新条目: extension=curl.so

2011-07-05

centos安装imagemagick

imagick是一个PHP的扩展,用ImageMagick提供的API来进行图片的创建与修改,不过这些操作已经包装到扩展imagick中去了,最终调用的是ImageMagick提供的API. ImageMagick是一套软件系列,主要用于图片的创建、编辑以及转换等,详细的解释见ImageMagick的官方网站http://www.imagemagick.org/,ImageMagick与GD的性能要高很多,如果是在处理大量的图片时更加能体现ImageMagick的性能。

2011-07-05

CSS工具-CSS工具

I Like Your Color 输入 URL 然后它会抓出其中的颜色并用 16 进制表示 CSS Multi-element Rollover Generator 使用 CSS 和一个图片创建出一个翻转按钮的样式。 CSS Rounded Box Generator Ruthsarian Layouts 6 个 CSS 页面布局模板,包括颜色、标题等。 2 栏和 3 栏的 CSS 布局框架 Glish CSS Layout techniques 2 、 3 、 4 栏的 CSS 布局框架 The Layout-o-matic

2011-07-06

nginx0.8.33

The Russian documentation is available at http://sysoev.ru/nginx/ The English documentation is available at http://nginx.net

2011-07-05

tabbar测试代码(ios)

一个关于tabbar的ios测试 4个按钮 显示不同的view

2012-11-02

SEO工具-SEO工具

内容与结构工具 搜索引擎抓取内容模拟器 可以模拟蜘蛛抓取指定网页,包括 Text 、 Link 、 Keywords 及 Descri http://www.webconfs.com/search-engine-spider-simulator.php 页面相似度检测工具 检验两个页面的相似度(如果相似度达 80% 以上,将可能受到惩罚 http://www.webconfs.com/similar-page-checker.php Sitemap Sitemap Sitemap 制作工具 在线创建 Sitemap 网站地图文件 中文 : http://www.xinqj.com/sitemap/sitemap.asp 英文 : http://www.xml-sitemaps.com/ 在线创建 Sitemap 可能会有一些限制,推荐使用下面的离线工具:

2011-07-06

tableviewDemo(ios)实例

tableviewDemo(ios)实例

2012-11-02

rhel5_apache安装

./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-auth-digest --enable-cgi --enable-suexec --with-suexec-caller=daemon --with-suexec-docroot=/usr/local/apache2/htdocs

2011-07-05

phpmyadmin

phpMyAdmin-3.3.9.2-all-languages.7z

2011-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除