随笔分类 -  TypeScript

摘要:使用 typescript 时,在一些定义中如果你没有明确识指定类型,编译器会自动推断出合适的类型,比如: let str = 'hello' str = 123 // error,不能将类型“123”分配给类型“string” 可以看到,定义变量 str 时并没有指定它的类型,而是直接赋值一个字符 阅读全文
posted @ 2020-05-30 14:12 黑色瓶子 阅读(1265) 评论(0) 推荐(0)
摘要:typescript中,this 也是一种类型,一个计算器的例子: class Counter{ constructor(public count:number = 0){} add(value:number){ this.count += value return this } subtract( 阅读全文
posted @ 2020-05-28 21:59 黑色瓶子 阅读(5867) 评论(0) 推荐(0)
摘要:类型别名 类型别名就是给一种类型起个别的名字,之后只要使用这个类型的地方,都可以用这个名字作为类型代替。它只是起了一个名字,并不是创建了一个新类型。 定义类型别名,使用 type 关键字: type StringType = string let s: StringType s = 'hello' 阅读全文
posted @ 2020-05-22 08:37 黑色瓶子 阅读(1693) 评论(0) 推荐(0)
摘要:null 和 undefined 是 ts 中的基础类型,分别具有值 null 和 undefined,默认情况下它们是所有类型的子类型,即可以赋值给任意类型,如: let s: string = 'hello' s = null //right s = undefined // right 但当我 阅读全文
posted @ 2020-05-20 22:45 黑色瓶子 阅读(17271) 评论(0) 推荐(0)
摘要:当遇到需要告诉编译器某个值是指定类型的场景时,我们可以使用类型断言,比如这个例子: const valueList = [123, "hello"] // getValue 函数随机返回数字类型或者字符串类型 function getValue() { const num = Math.random 阅读全文
posted @ 2020-05-20 09:49 黑色瓶子 阅读(1158) 评论(0) 推荐(0)
摘要:交叉类型 交叉类型的表示方法为 Type1 & Type2,结果是取这两个类型的并集。这里是官网的例子,做了注释: // 定义函数 extend,用来合并对象 function extend<T, U>(first: T, second: U): T & U { // result 是要返回结果,类 阅读全文
posted @ 2020-05-18 20:47 黑色瓶子 阅读(2746) 评论(0) 推荐(1)
摘要:函数兼容性 函数参数个数 比如有如下两个函数: let x = (a: number) => 0 let y = (b: number, c: string) => 0 函数参数个数如果要兼容,需要满足条件:如果对函数 y 进行赋值,则 x 中的每个参数都应在 y 中有对应,也就是 x 的参数个数小 阅读全文
posted @ 2020-05-17 16:34 黑色瓶子 阅读(2614) 评论(0) 推荐(0)
摘要:介绍 这里引入官网一段介绍,了解个大概: 软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。 在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支 阅读全文
posted @ 2020-05-12 15:18 黑色瓶子 阅读(4615) 评论(0) 推荐(0)
摘要:函数类型 为函数定义类型 给函数定义类型,包括对参数和返回值的类型定义: function add(arg1: number, arg2: number): number { return arg1 + arg2 } // 箭头函数 const add = (arg1: number, arg2:n 阅读全文
posted @ 2020-05-09 16:00 黑色瓶子 阅读(14778) 评论(0) 推荐(1)
摘要:类实现接口 接口可以规定一个类的定义必须包含某些内容。类实现接口使用关键字 implements。 interface UserInterface{ name:string; age:number; } // 类实现接口 class User implements UserInterface{ na 阅读全文
posted @ 2020-05-04 08:41 黑色瓶子 阅读(657) 评论(0) 推荐(0)
摘要:typescript 中的类与 es6 中的类在使用上基本一样,举个小例子: class Person{ name:string; constructor(name:string){ this.name = name } sayHi(){ console.log('hi') } } // 定义 Te 阅读全文
posted @ 2020-05-03 09:49 黑色瓶子 阅读(345) 评论(0) 推荐(0)
摘要:TypeScript的核心原则之一是对值所具有的结构进行类型检查,而接口就是用来定义值的结构,接口自身当作类型来用。 基本使用 先看一段代码: function func(obj: { name: string }): void { console.log('hello ' + obj.name) 阅读全文
posted @ 2020-05-02 10:02 黑色瓶子 阅读(664) 评论(0) 推荐(0)
摘要:typescript很强大,但是用不好时也会很头痛,开发遇到类型错误的情况不在少数,或许你需要了解类型断言。使用断言,简单来说就是先做好一个假设,使得编译通过。 我一开始接触类型断言时是有点不明白的,后来我了解到原因是 “类型断言更像是类型的选择,而不是类型转换”。我发现不少博客文章里把类型断言说成 阅读全文
posted @ 2019-10-18 11:15 黑色瓶子 阅读(10043) 评论(1) 推荐(3)
摘要:数字枚举 数字枚举,即枚举里所有属性的值都是数字类型,先看这段代码: 之前也提到过,当枚举里的属性没指定具体值时,默认值是从 0 开始依次排列,你也可以自己指定具体值,剩下的也是依次递增: 另外,数字枚举在定义值的时候,可以是 常量 或者是 计算出来的。当满足以下条件时,枚举成员可以看作常量: 1. 阅读全文
posted @ 2019-10-16 17:05 黑色瓶子 阅读(12811) 评论(0) 推荐(0)
摘要:javascript中有7种数据类型,分别是:boolean,number,string,null,undefined和object,以及在es6中新增的一种类型 symbol。而typescript又在此基础上增加了一些类型,接下来一个个来看。 元组 元组类型允许表示一个已知元素数量和类型的数组, 阅读全文
posted @ 2019-09-28 14:32 黑色瓶子 阅读(1322) 评论(0) 推荐(0)
摘要:开发typescript项目有一些现成的脚手架,比如:typescript-library-starter,它的配置齐全,更适合用在实际项目开发上。其实在学习阶段可以自己搭建一个简单的typescript运行环境,只用作学习typescript语法。 提示:以下案例使用 webpack4 版本 初始 阅读全文
posted @ 2019-09-25 11:59 黑色瓶子 阅读(2341) 评论(0) 推荐(0)