typescript 快速入门1

markdown ## 基础操作 ### 安装 ```text npm install typescript -g npm install ts-node -g ``` ### 运行 ```text ts-node xxx.ts ``` 或者 ```text tsc xxx.ts // 生成xxx.js node xxx.js ``` ## 基础语法 ### 数据类型 ```text // null undefined symbol boolean void number string 基础类型 const count: number = 123; const teacherName: string = 'Dell'; // 对象类型 const teacher: { name: string, age: number } = { name: 'Dell', age: 28 } const numbers: number[] = [1, 2, 3]; const numb: (number | string)[] = [1, '2', 3]; const teacherList: { name: string, age: number }[] = [{ name: 'Tome', age: 18 }, { name: 'Dell', age: 28 }] ``` ### 函数 ```text // 函数返回值类型 function getTotal(one: number, two: number): number { return one + two; } // 函数无返回值 function sayHello(): void { console.log('Hello World'); } // 函数参数为对象 function add({ one, two }: { one: number, two: number }): number { return one + two; } // 函数参数为数组 function getNumber({ one, two }: number[]): number { return one + two; } // 函数参数为对象,返回值为对象 function getNumber({ one, two }: { one: number, two: number }): { three: number } { return { three: one + two } } const func = (str: string) => string = (str) => { return str; } ``` ### 类型注解 ```text // 类型注解 尽量提前定义类型 let count: number; count = 123; // 类型推断 let countInference = 123; type User = { name: string, age: number } const teacher: User = { name: 'Dell', age: 28 } ``` ### 元组 tuple ```text // 更准确的数组类型定义 const testerInfo: [string ,string,number] = ["harlod","male",18] ``` ## interface 接口 ```text interface Person { readonly id: number; // 只读属性 name: string; age?: number; // 可选属性 } const getPersonName = (person: Person): void => { console.log(person.name); } const setPersonName = (person: Person, name: string): void => { person.name = name; } ``` ## 类 class ```text class Person { name = 'dell'; getName() { return this.name; } } class Teacher extends Person { getTeacherName() { return 'Teacher'; } getName() { return super.getName() + 'lee'; } } ``` ## 类与接口 ```text interface Person { name: string; getName(): string; } class Teacher implements Person { name = 'dell'; getName() { return this.name; } } ```

评论