-
typescript类型
查看全部 -
typescript类型
查看全部 -
安装nodejs.org下载相应版本
npm install -g typescrit
node -v
tsc -v
编译ts文件
tsc main.ts
执行ts文件
node main.js查看全部 -
元组:固定长度,固定类型的特殊数组,用push会突破长度限制,但需要在约定类型内
let person = [1, 'abc']:这种不属于元组,是属于联合类型数组
let person:(number, string)[] = ['abc', 1, true]
查看全部 -
设置变量类型后,重新赋值其他类型会提示错误:类型boolean不能赋值给string
let isTrue = true
// isTrue = 'abc' ts报错
查看全部 -
通过使用泛型 在使用的时候才指定类型,得到不同类型的函数
const makeTuple = <T = number, U>(x: T, y: U): (T | U)[] => [x, y]
const v1: (number, string)[] = <number, string)makeTuple(1, 'one')
查看全部 -
一个文件就可以称为一个模块,通过export到出外部使用。可将class封装成一个模块导出
查看全部 -
class类是紧密相关的属性和函数的集合
避免外部直接操作class属性,就需要使用class访问修饰符加以限制
设置为private属性后可以通过添加get/set函数在外部访问,赋值时可通过set函数进行校验
私有熟悉private通常用下划线表示_key,interface中可直接用key:number声明
查看全部 -
ts的优势
1. 功能相同的参数包装成对象作为整体传入
2. 通过校验参数类型add(a: number, b: number),规避了add'1'+'2'='12'的风险
3. 通过校验对象参数,约束传参对象,规避了随意传递一个对象参数导致报错问题
封装的聚合规则:高内聚,低耦合,可用class将功能相近的代码组合在一起
高内聚:功能相关的事物,应该放在同一集合中,形成一个模块
低耦合:模块之间互相独立,不同模块之间保持低耦合的状态
查看全部 -
休息休息
收拾收拾
查看全部 -
Generics 泛型
类型<> 泛型
数据的模板
通过使用泛型 在使用的时候才指定类型,得到不同类型的函数
let makeTuble = <T, Y = number>(x: T, y: Y) => [x, y];
makeTuble<number, string>(2, '3')
查看全部 -
Access Modifier 访问修饰符
class里面没有写访问修饰符的都是public属性
public 公有属性
在外部可以修改
private 私有属性
在外部无法访问,且interface里面也不可以定义
ts里面有懒人包可以设置getter setter
interface也比较好使用 私有成员变量
查看全部 -
object
使用object类型时内部结构并不清晰,不会对代码类型校验有任何帮助
相当于指定了一个{},使用几率较少
Interface
interface Point {
x: number,
y: number
} // 高内聚 (把相关联的模块写在一起),低耦合
class
紧密相关的属性和函数的集合
interface Ipoint {
x: number,
y: number,
drawPoint: ()=> void;
getDistance: (p: Ipoint) => number;
}
class Point implements Ipoint {
x: number;
y: number;
drawPoint = ()=>{
}
getDistance = (p: Ipoint) => {
return Math.pow(p.x - this.x, 2) + Math.pow(p.y - this.y, 2)
}
}
通过构造函数对class值进行初始化和启用默认值,javascript不支持重载,有且仅有一个构造函数
ps:构造函数的参数加上关键字public,private,
查看全部 -
函数类型
let log1 = function (message) {
console.log(message);
}
let log2 = (message) => console.log(message);
与javascript写法基本类似,区别就是可以指定参数变量类型和返回数据类型
let log3 = (message: string) => console.log(message);
// 通过问号表示可选性,不确定的都放在后面
let log4 = (message?: string) => console.log(message);
查看全部 -
类型断言 (类型适配) Type Assertions
明确告诉ts进行类型适配 告诉它变量现在就是这种类型
有两种方式
1. <string>message
2. as 关键词
查看全部
举报