ts笔记(一)

156 阅读1分钟

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是全集