ts类型:泛型
// 定义函数
function identity(arg:any):any{
return arg
}
arg.length :取参数的长度
// 调用函数
console.log(identity<number>(123))
arg:如果是any类型,会缺少安全检查,可接受任何类型.尽量少使用any类型;
ts包含的类型:number、boolean、string、Array、元组Tuple
1、keyof关键字:遍历类型的属性,提取属性名称,可以用来才做接口和类
interface Person {
name: string;
age: number;
location: string;
}
type K1 = keyof Person; // "name" | "age" | "location"
type K2 = keyof Person[]; // number | "length" | "push" | "concat" | ...
type K3 = keyof { [x: string]: Person }; // string | number
取的是属性名称,跟js里面的for in类似,晚点把代码补上
2、typeof关键字在js里面是用来获取对象的类型的 ,在ts里面也是用来获取对象类型的,写法不一样而已
js:
let aa ="abcd"; // console.log(typeof aa)
ts:
const sem: Person = { name: "semlinker", age: 30 };
type Sem = typeof sem; // type Sem = Person
3、索引签名:就是通过索引的方式来访问对象的属性:
foo['Hello'] = 'World';
console.log(foo['Hello']); // World
4、索引访问类型
5、union类型 指的是可以通过管道 | 将变量设置多种类型,赋值时可以根据设置的类型来赋值
let val:string|number
let = 12
console.log("数字为 "+ val)
val = "abcd"
console.log("字符串为 " + val)
6、多个函数同名的学名叫做函数重载
7、typeof NameorId<extends number | string> = T extend number ?IDLavel:NameLabel :翻译 成js:typeof T == "string"?IDLavel:NameLabel
8、unkonw 和any的区别: unkonw是安全的,any是不安全的
9、any是空集,never是全集