TypeScript String(字符串)
TypeScript String(字符串)
String 对象用于处理文本(字符串)。
语法
var txt = new String("string");
或者更简单方式:
var txt = "string";
String 对象属性
下表列出了 String 对象支持的属性:
序号属性 & 描述实例
1.
constructor
对创建该对象的函数的引用。
var str = new String( "This is string" );
c ...
vue+typescript项目中eslint,tslint配置
Tslint配置主要配置文件如下:
// tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"strict": true,
"jsx": "preserve",
"importHelpers": true,
"moduleResolution": "node",
"experimentalDecorators": true,
"esModuleInterop": true,
"resolve ...
TypeScript声明文件
为什么需要声明?
声明的本质是告知编译器一个标识符的类型信息。同时,在使用第三方库时,我们需要引用它的声明文件,才能获得对应的代码补全、接口提示等功能。
声明在TypeScript中至关重要,只有通过声明才能告知编译器这个标识符到底代表什么含义。对于语言关键字之外的任意标识符,如果编译器无法获取它的声明,将会报 ...
Typescript语法简单汇总
1、Typescript原始数据类型:
string
number
boolean
null
undefined
enum
symbol
空值一般采用void表示,void可以表示变量,也可以表示函数返回值。
2、Typescript中的任意值:
任意值(any)用来表示允许赋值为任意类型。
申明一个变量为任意值后,对它的任何操作,返回的内容的类型都是任意值。
变量如果在申明的时候如 ...
使用typescript改造koa开发框架
原文地址:使用typescript改造koa开发框架
强类型的 TypeScript 开发体验和维护项目上相比 JavaScript 有着明显的优势,那么对常用的脚手架进行改造也就势在必行了。
接下来开始对基于 koa 框架的 node 后端脚手架进行改造:
项目开发环境 和 typescript 编译环境的搭建;
对 node、koa、koa中间件和使用到的库 添加类型化 ...
用 F# 手写 TypeScript 转 C# 类型绑定生成器
前言
我们经常会遇到这样的事情:有时候我们找到了一个库,但是这个库是用 TypeScript 写的,但是我们想在 C# 调用,于是我们需要设法将原来的 TypeScript 类型声明翻译成 C# 的代码,然后如果是 UI 组件的话,我们需要将其封装到一个 WebView 里面,然后通过 JavaScript 和 C# 的互操作功能来调用该组件的各种方法,支持该 ...
TypeScript 接口(interface)
介绍
TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。 在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。
接口初探
通过一个简单示例来观察接口是如何工作的:
function printLabel(labelledObj: { label: string }) {
con ...
TypeScript 源码详细解读(4)语法1-语法树
在上一节介绍了标记的解析,就相当于识别了一句话里有哪些词语,接下来就是把这些词语组成完整的句子,即拼装标记为语法树。
树(tree)
树是计算机数据结构里的专业术语。就像一个学校有很多年级,每个年级下面有很多班,每个班级下面有很多学生,这种组织结构就叫树。
组成树的每个部分称为节点(Node);
最顶层 ...
TypeScript高级类型
交叉类型(Intersection Types)
交叉类型是将多个类型合并为一个类型。 这让我们可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。 例如,Person & Serializable & Loggable同时是Person和Serializable和Loggable。 就是说这个类型的对象同时拥有了这三种类型的成员。
我们大多是在混入(mixin ...
TypeScript声明合并
介绍
TypeScript中有些独特的概念可以在类型层面上描述JavaScript对象的模型。 这其中尤其独特的一个例子是“声明合并”的概念。 理解了这个概念,将有助于操作现有的JavaScript代码。 同时,也会有助于理解更多高级抽象的概念。
对本文件来讲,“声明合并”是指编译器将针对同一个名字的两个独立声明合并为单一声明。 合并 ...
编写TypeScript工具类型,你需要知道的知识
什么是工具类型
用 JavaScript 编写中大型程序是离不开 lodash 工具的,而用 TypeScript 编程同样离不开工具类型的帮助,工具类型就是类型版的 lodash 。简单的来说,就是把已有的类型经过类型转换构造一个新的类型。工具类型本身也是类型,得益于泛型的帮助,使其能够对类型进行抽象的处理。工具类型主要目的是简化类型编 ...
TypeScript 源码详细解读(3)词法2-标记解析
在上一节主要介绍了单个字符的处理,现在我们已经有了对单个字符分析的能力,比如:
判断字符是否是换行符:isLineBreak
判断字符是否是空格:isWhiteSpaceSingleLine
判断字符是否是数字:isDigit
判断字符是否是标识符(变量名):
标识符开头部分:isIdentifierStart
标识符主体部分:isIdentifierPart
同时还可以通 ...
在 React 中使用 Typescript
前言
用 Typescript 写 React 可比写 Vue 舒服太多了,React 对 ts 的支持可谓天生搭档,如果要用 ts 重构项目,不像 Vue 对项目破坏性极大,React 可以相对轻松的实现重构。
顺便一提:全局安装的 create-react-app 现已无法再下载完整的 React 项目模版,必须先 npm uninstall -g create-react-app 移除命令 再 ...
在 Vue 中使用 Typescript
前言
恕我直言,用 Typescript 写 Vue 真的很难受,Vue 对 ts 的支持一般,如非万不得已还是别在 Vue 里边用吧,不过听说 Vue3 会增强对 ts 的支持,正式登场之前还是期待一下吧嘻嘻。
本篇不会过多讲述 ts 语法,着重记录下 在 Vue 中使用 ts 的方法以及踩坑经过。
如果是使用 Vue Cli2 搭建的项目,要注意 we ...
typescript的重载
重载允许一个函数接受不同数量或类型的参数时,作出不同的处理。
比如,我们需要实现一个函数 reverse,输入数字 123 的时候,输出反转的数字 321,输入字符串 'hello' 的时候,输出反转的字符串 'olleh'。
利用联合类型,我们可以这么实现:
function reverse(x: number | string): number | string {
if (typeof x = ...
TypeScript 源码详细解读(2)词法1-字符处理
本节文章研究的代码位于 tsc/src/compiler/scanner.ts
字符
任何源码都是由很多字符组成的,这些字符可以是字母、数字、空格、符号、汉字等……
每一个字符都有一个编码值,比如字符“a”的编码值是97,字符“林”的编码值是26519。
每个字符对应的编码值是多少是由编码表决定的,上面所示的编码值是全球统一的编码 ...
TypeScript 源码详细解读(1)总览
TypeScript 由微软在 2012 年 10 月首发,经过几年的发展,已经成为国内外很多前端团队的首选编程语言。前端三大框架中的 Angular 和 Vue 3 也都改用了 TypeScript 开发。即使很多人没直接用过 TypeScript,他们也在通过 VSCode 提供的智能提示功能间接享受着 TypeScript 带来的各项便利。
很多人对 TypeScript ...
深入浅出 Typescript
TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。
TypeScript 由微软开发的自由和开源的编程语言。
TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。
以上为网上对 Typescript 的一些解释,那我们为什么要学 Typescript?
提到前端我们首先 ...
typescript中的esModuleInterop选项
当没有加esModuleInterop时
库的代码:
export const a = 1;
export default function b() {}
生成代码
exports.__esModule = true;
exports.a = 1;
function b() { }
exports["default"] = b;
使用库的代码:
import * as lib from './export';
console.log(lib);
生成代码
exports.__esModule = true;
var ...
JavaScript&Typescript中的时间
修改操作系统的时间并不一定能马上反映到浏览器中(比如new Date()有可能短时间内还是旧的时间)
timestamp时间戳
timestamp时间戳的单位一般是毫秒,因此进行加减操作时要使用毫秒为单位的时间段。不过timestamp也有以微秒为单位的,比如一些可以进行时间戳转换的网站上就可以选使用毫秒还是微秒为单位。
时区
IANA t ...