11. 类型断言
TypeScript 提供了“类型断言”这样一种手段,允许开发者在代码中“断言”某个值的类型,告诉编译器此处的值是什么类型。TypeScript 一旦发现存在类型断言,就不再对该值进行类型推断,而是直接采用断言给出的类型。 对于没有类型声明的值,TypeScript 会进行类型推断,很多时候得到的结果,未必是开发者想要的。 上面示例中,最后一行报错,原因是 TypeScript 推断变量foo的类…
阅读全文Latest Posts
记录技术、生活和一些阶段性的想法。
TypeScript 提供了“类型断言”这样一种手段,允许开发者在代码中“断言”某个值的类型,告诉编译器此处的值是什么类型。TypeScript 一旦发现存在类型断言,就不再对该值进行类型推断,而是直接采用断言给出的类型。 对于没有类型声明的值,TypeScript 会进行类型推断,很多时候得到的结果,未必是开发者想要的。 上面示例中,最后一行报错,原因是 TypeScript 推断变量foo的类…
阅读全文enum(枚举)在 TypeScript 中是一个用于定义一组命名常量的工具,它可以让代码更加清晰、可读、可维护。 假设你有一组固定的值,比如一周的七天、订单状态、用户角色、性别等等。用字符串或数字硬编码是很容易出错的,比如: Enum 结构的特别之处在于,\\它既是一种类型,也是一个值。\\绝大多数 TypeScript 语法都是类型语法,编译后会全部去除,但是 Enum 结构是一个值,编译后会…
阅读全文前面的是比较基础的,后面的对我来说就是进阶的了。想要玩转企业级开发,后面的东西必须认真对待了。 有些时候,函数返回值的类型与参数类型是相关的。 上面示例中,函数getFirst()总是返回参数数组的第一个成员。参数数组是什么类型,返回值就是什么类型。 这个时候只能用any来处理了 但是这样的标注,就反映不出参数与返回值之间的类型关系。就算返回一个'123'也不会报错。 为了解决这个问题,TypeS…
阅读全文类(class)是面向对象编程的基本构件,封装了属性和方法,TypeScript 给予了全面支持。 类的属性可以在顶层声明,也可以在构造方法内部声明。 TypeScript 有一个配置项strictPropertyInitialization,只要打开(默认是打开的),就会检查属性是否设置了初值,如果没有就报错。 上面示例中,如果类的顶层属性不赋值,就会报错。如果不希望出现报错,可以使用非空断言…
阅读全文刚试了一下优化OSS 前两天已将删除图床图片时删除OSS图片了。但是还没有实现删除文章时清理文章中的图片。 之前在浏览器访问OSS图片链接的时候会自动弹出下载,原因是出于安全考虑,当您通过Bucket默认域名访问某些文件时,可能会触发强制下载或禁止下载。如果您希望在浏览器中正常预览或下载这些文件,您需要为Bucket绑定自定义域名,并通过自定义域名访问OSS文件。绑定自定义域名不会影响Bucket…
阅读全文interface是对象的模板,可以看作是一种类型约定,中文译为“接口”。使用了某个模板的对象,就拥有了指定的类型结构。也就是说,能用来声明一个对象的结构。 和type类似,但是interface主要用于描述对象结构,不支持直接定义基本类型、联合类型。元组。而type 可以描述任何类型(包括基本类型、联合类型、元组等)。 interface能用extends,可继承多个接口,而type需要用&来组…
阅读全文直接标注: 属性的类型可以用分号结尾,也可以用逗号结尾。 除了type命令可以为对象类型声明一个别名,TypeScript 还提供了interface命令,可以把对象类型提炼为一个接口。 如果某个属性是可选的(即可以忽略),需要在属性名后面加一个问号。 属性名前面加上readonly关键字,表示这个属性是只读属性,不能修改。只读属性只能在对象初始化期间赋值,此后就不能修改该属性。 如果对象的属性非…
阅读全文函数的类型声明,需要在声明函数时,给出参数的类型和返回值的类型。如果没有返回值,可以标注为void 返回值的类型通常可以不写,因为 TypeScript 自己会推断出来。 如果变量被赋值为一个函数,变量的类型有两种写法。 如果函数的某个参数可以省略,则在参数名后面加问号表示。 设置了默认值的参数,就是可选的。如果不传入该参数,它就会等于默认值。 可选参数与默认值不能同时使用。 参数解构 : res…
阅读全文根本特征:所有成员的类型必须相同,但是成员数量是不确定的,可以是无限数量的成员,也可以是零成员。 需要只读数组的时候,只需要再类型声明前加上readonly: TypeScript 将readonly number\[]与number\[]视为两种不一样的类型,后者是前者的子类型。(因为只读数组没有pop()、push()之类会改变原数组的方法) 特殊的是:如果这样写就会报错:const arr:…
阅读全文Js类型:boolean string number object undefined null bigint symbol TypeScript 继承了 JavaScript 的类型设计,以上8种类型可以看作 TypeScript 的基本类型。复杂类型由它们组合而成。 和Java不同,js类型的名称都是小写字母,首字母大写的Number、String、Boolean等在 JavaScript 语…
阅读全文