-
js中,可以在字符串前面加+号来强制转换为数字类型
如:
let num1='11', num2='22'
return +num1 + +num2
查看全部 -
TypeScript
查看全部 -
tsc 运行文件
查看全部 -
休息休息
收拾收拾
查看全部 -
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 关键词
查看全部 -
void unefined never
函数不返回的时候就是void类型的函数
函数返回的值的类型undefined
never
函数抛出异常,永远无法执行完成
throw 抛出异常 或者 while循环 可以用来偷懒
查看全部 -
any 任意类型
灵活性 避免没有必要的类型定义
多用 且用好这个类型
unknow 未知类型
不保证类型 但使用时限定类型,保证使用安全
查看全部 -
枚举类型 Enum
enum Color1 {
red = 5,
green,
blue
} // 成员的值从0开始,也可以指定数据
let color = Color.blue;
enum Color2 {
red = 5,
green = 10,
blue = 1
} // 成员的值从0开始,也可以指定数据
enum Color2 {
red = 'red',
green = 'green',
blue = 1
} // 成员的值从0开始,也可以指定数据
查看全部 -
联合类型Union
let union: string | number = 3; // 同时支持string和number
字面量类型Literal类型
let literal1:1 | '2' | true | [1, 2, 3, 4] ;
查看全部 -
Array
数组中可以存放任意类型的数据,混合各种数据
let list1: number[] = [1, 2, 3, 4]; // 标准写法
let list2: Array<number> = [1, 2, 3, 4]; // 泛型写法
let list3 = [1, 2, 3, 4]; // 最简单的写法
// 混合类型数据 联合类型
let list4 = [1,'ddd']; // (number | string)[];
let list5: any[] = [1, 'dss', true]; // any[];
tuple(读音: Tiu破,踏破) 元组类型
固定长度,且每个元素类型固定,特殊数组
let person1:[number, string] = [1, 'zengfan'];
存在bug 使用数组方法也是可以操作的 比如person1.push() 生命元组时一定要指定类型
查看全部 -
number string boolean
变量定义的时候,自动根据初始化的值映射类型
变量定义显式指定
变量传参的时候 指定类型
查看全部
举报