TS是JS的一个超集,在原有的语法基础上,添加了可选静态属性和基于类的面向对象编程
基础类型 boolean/string/number/undefined/null/array
元组类型 tuple
指定元素类型与数量,元素要与指定值相匹配
let tupleTyp:[string, boolean] = ["str", true]
枚举类型 enum
数字枚举类,可以不赋值,默认从0开始,依次递增
enum NumberMap {
BAD,
NG,
GOOD
}
// 反向映射
NumberMap[0] // BAD
字符串枚举类,每个元素都必须赋值
enum StringMap {
BAD = "BAD",
NG = "NG",
GOOD = "GOOD"
}
// 反向映射
StringMap['BAD'] // BAD
混合枚举类,最后一个元素如果不赋值,默认当成数字枚举,取它上一个枚举值加上1
enum MixMap {
BAD, // 0
NG, // 1
GOOD = "GOOD", // GOOD
PERFERT // ERROR=>GOOD + 1
}
enum MixMap {
BAD, // 0
NG = "NG", // NG
GOOD = 2, // 2
PERFERT // 3
}
任意类型 any
未知类型 unknow
空类型 void
永不返回类型 never
对象类型
类型断言
interface Vegatables {
name: string;
readonly color: string; //只读属性
size?: number; // 可选属性
[key: string]: any; // 自定义属性
}
interface Price {
price: number;
unit: string
}
// 类型继承
interface Tomato extends Vegatables {
desc: string
}
// 交叉类型,取并集
type VegatablePrice = Vegatable**s &** Price
**//** 联合类型
****type VegatablePrice = Vegatable**s |** Price
**interface Test {
name: string;
add: (param: string) => string
}
class TestA implements Test {
name: string;
add(name: string) {
return ""
}
}**