typescript

以下是为您整理出来关于【typescript】合集内容,如果觉得还不错,请帮忙转发推荐。

【typescript】技术教程文章

Angular2+typescript+webpack2(支持aot, tree shaking, lazy loading)

概述Angular2官方推荐的应该是使用systemjs加载, 但是当我使用到它的tree shaking的时候,发现如果使用systemjs+rollup,只能打包成一个文件,然后lazy loading就没法搞了。因此我使用了webpack2,webpack2自带tree shaking,只要将tsconfig中的module设置成es2015就可以, 虽然效果没rollup好,但支持lazy loading。另外, angular2目前不支持typescript 2.1.X,所以如果想在"target": "es5"前提下使用async/await就不行了,但是可...

在TypeScript中使用其他JS框架或库的方法【代码】

最近刚刚接触TypeScript,感觉非常强大,但是也有一些问题。比如我们正常写js时,只要把其他js库引入页面,甚至于只要加入到项目中,ReSharper就会自动分析他,并提供语法只能感知,写代码很舒服。但是由于TypeScript是强类型语言,他不允许其他未知的js库在当前使用,因为没有办法做编译检测,所以如何在ts中使用其他js库就成了一个问题。查了下有以下几种方法:1、使用declare关键字declarevar $: any; declarevar jQuery: any; ...

TypeScript之调用栈【代码】【图】

class CallStackTool{private static index:number = 0;public static printCallStack (count:number , simple: boolean = true):void {let caller:Function = arguments.callee.caller;let i:number = 0;count = count || 10;CallStackTool.index ++;if( CallStackTool.index > 500 ) CallStackTool.index = 1;console.log(`***-----------------${CallStackTool.index}Start----------------------- **`);while (caller && i <...

TypeScript 中 Optional Chaining 和 Nullish Coalescing【代码】

Optional Chaining 解决的问题是重复且无意义的判空,之所以说无意义,是对业务来说它不是必需的,但不判空,程序直接就挂了,比如:letx=foo.bar.baz(); 这里的访问链路上 foobarbaz 任何一个为 undefined,程序就停止工作。使用 Optional Chaining 修改后:letx=foo?.bar.baz(); 这里 ?. 的句法就是 Optional Chaining,在 TypeScript 3.7 中实现,目前 tc39 提案中处于 Stage 4 阶段。Optional Chaining 在这里表示,如果 foo 是...

typeScript入门(二)函数与类

3.ts的函数1)函数的返回值和参数在函数的定义需要定义其的返回值可以void,来表示没有返回值函数参数的定义,举个例子分析下吧name:string,age?:number=23冒号后面是参数的类型,加个?表示这个参数不是必传的,所以你就可以在这理解到,这个?如果某个参数写了,那后面都是需要加的,因为它不是必传的。在类型后面用个赋值方式就是给这个参数写一个默认参数。当参数很多的时候,你就用需要用三点运算符数组来接受参数。(...arr:any...

TypeScript基本语法

#1---接口interface User { name: string; id: number;}const user: User = { username: "Hayes", id: 0,};#2---类class UserAccount { name: string; id: number; constructor(name: string, id: number) { this.name = name; this.id = id; }}const user: User = new UserAccount("Murphy", 1);#3---函数function getAdminUser(): User { //...}function deleteUser(user: User) { // ...}#4---Composing Types:...

TypeScript(04): 基础类型【代码】【图】

TypeScript 包含的数据类型如下表:Any 类型任意值是 TypeScript 针对编程时类型不明确的变量使用的一种数据类型,它常用于以下三种情况。1、变量的值会动态改变时,比如来自用户的输入,任意值类型可以让这些变量跳过编译阶段的类型检查,示例代码如下:let x: any = 1; // 数字类型 x = ‘I am who I am‘; // 字符串类型 x = false; // 布尔类型改写现有代码时,任意值允许在编译时可选择地包含或移除类型检查,示例代码...

[TypeScript] 建置输出单一JavaScript档案(.js)与Declaration档案(.d.ts)【代码】

[TypeScript] 建置输出单一JavaScript档案(.js)与Declaration档案(.d.ts)问题情景开发人员使用Visual Studio来开发TypeScript,可以很方便快速的将项目里的所有TypeScript档案(.ts),一口气全部编译成为JavaScript档案(.js),用以提供html网页使用。但是当软件项目越来越庞大的时候,过多的.js档引用,会增加开发.html档案时的负担;并且每个.js档之间的相依关系,也很容易因为引用顺序的错误,而造成不可预期的问题。<!DOCTYPE htm...

Typescript高级用法 keyof,Pick,Record,Partial,Required,Exclude,Omit?【代码】

记录一下typescript中一些类型高级用法:首先声明一个类型IUser:interface IUser {name: string;age?: number;class?: string;sex: string; }1、keyof:作用是获取键type keys = keyof IUser;2、Pick:从类型定义的属性中,选取指定一组属性,返回一个新的类型定义。源码:type Pick<T, K extends keyof T> = {[P in K]: T[P]};例子:type IPG = Pick<IUser, ‘name‘> let gg: IPG = {name: ‘5‘ }3、Record:以 typeof 格式快速...

typescript中高级类型之交叉类型与联合类型【代码】

交叉类型交叉类型的表示方法为 Type1 & Type2,结果是取这两个类型的并集。这里是官网的例子,做了注释:// 定义函数 extend,用来合并对象function extend<T, U>(first: T, second: U): T & U {// result 是要返回结果,类型断言为 T & Ulet result = {} as T & U// 遍历 first,结果存入 resultfor(let id in first){// 不能将类型“T”分配给类型“T & U”,所以需使用断言result[id] = first[id] as any}// 遍历 second,结果存...

TYPESCRIPT - 相关标签