TypeScript 介绍
TS是添加了类型系统的 JavaScript,适用于任何规模的项目的一面语言
**定义:**Ts是静态类型、弱类型的语言
**特性:**类型系统、适用于任何规模、可以编译为Js、与先进的Es语法同步
作用: 更严格的语法,解决了Js代码灵活性大而造成的安全问题
类型定义
接口的作用就是为类型进行声明和为代码定义约束
type(类型别名)
type可以声明基本类型别名,联合类型,元组等类型
// 语法:
type 别名=类型;
interface(接口)
interface只能声明对象类型
// 语法
interface 接口名 {}
type和interface的相同点和区别
-
相同点
- 都可以描述一个对象或者函数
- 都允许拓展继承(extends)
-
区别
-
类型别名可以用于其它类型 (联合类型、元组类型、基本类型(原始值)),interface只支持对象类型
-
interface可以多次定义,声明合并,type 不支持
-
type 能使用 in 关键字生成映射类型,但 interface 不行
-
默认导出方式不同
-
// inerface 支持同时声明,默认导出 而type必须先声明后导出 export default interface Config {name: string;} // 同一个js模块只能存在一个默认导出哦 type Config2 = {name: string} export default Config2
-
TS类型系统
基本类型
变量尽量使用 const/let 定义 不要用var
引用类型-Object
引用类型-Function
引用类型-Array
引用类型-内置对象
泛型
元组
枚举
类
映射类型
interface Iparam{
key:number,
value:number
}
// let param:Iparam={} 问题:初始值为空,会报错
let param:Partial<Iparam>={} //解决:Partial<>会帮助自动生成为可选属性 ?:
联合类型
// 定义该数组的元素类型可以是数字,也可以是字符串
const arr:(number|string)[] =[1,2,3,'a','b','c']