TypeScript详解

TypeScript详解(安装使用、基础类型总结、类型断言用法、接口、类、函数、泛型、相同类型之间赋值、unknown、枚举等)

https://blog.csdn.net/AIWWY/article/details/123230874

 

 1 interface Iperson {
 2   name: string;
 3   age: number;
 4   getName: () => string;
 5   getAge(): number;
 6 }
 7 //类实现接口. implements
 8 class person implements Iperson {
 9   name: string = "John";
10   age: number;
11   getName(): string {
12     return this.name;
13   }
14   getAge(): number {
15     return this.age;
16   }
17 }
18 
19 //类型断言
20 function add(a: string | number, b: string | number): number {
21   // return a + b; //会报错,因为不确定类型
22   // if(typeof a === 'string') {               //常规js操作
23   //   return a.length
24   // }
25   if ((a as string).length) {
26     // return (a as string).length  //断言方法 or
27     return (<string>a).length;
28   } else {
29     return a.toString().length;
30   }
31 }
32 
33 // 非空断言 (和三元表达式一样)
34 function getI(a?: string): number {
35   // return a ? a.length : 0
36   return a!.length; //非空断言
37 }
38 getI();
39 
40 //枚举(赋值) 和反向映射
41 enum Color {
42   red,
43   green,
44   yellow = 10
45 }
46 Color.red //0
47 Color[0] // red 反向映射
48 
49 //泛型
50 function identity<T>(arg: T): T {
51   return arg;
52 }
53 let output = identity<string>("myString");  // type of output will be 'string'
54 
55 function funa<T>(a: T, b: T): number {
56   // if(typeof a === 'number' && typeof b === 'number') {}
57     return a + b        //Error 运算符“+”不能应用于类型“T”和“T”。 
58 }
59 funa<number>(3, 3)
60 
61 
62 
63 function loggingIdentity<T>(arg: T): T {
64   console.log(arg.length);  // Error: T doesn't have .length
65   return arg;
66 }
67 loggingIdentity<number>(3)

 

posted @ 2022-03-28 10:26  顺·  阅读(107)  评论(0编辑  收藏  举报