美文网首页
typescript

typescript

作者: 简爱_cdde | 来源:发表于2024-07-15 15:37 被阅读0次

* 基础类型语法:

* let name: string;

* let age: number;

* let isStudent: boolean;

* let list: string[];

* let list1: Array<string>;

* let person: { name: string, age: number };

* let fn: (name: string, age: number) => void;

* let result: string = fn('张三', 18);

标识符

* type -- 类型别名

* interface -- 接口

* | -- 联合类型

* & -- 交叉类型

* : -- 类型声明

* .d.ts -- 声明文件

* <> -- 泛型

* export -- 导出

* import -- 导入

* namespace -- 命名空间

* module -- 模块

* 类型别名:

* 就是将一个类型定义为一个新的类型名称,这样可以更方便的引用类型,提高代码的可读性。

* 别名是通过type关键字定义的,语法格式如下:

* type 别名 = 类型

* 示例:

* type Name = string;

*

* 接口:

* 就是将对象的属性和方法进行抽象,定义为一个接口,然后对象可以实现这个接口,实现接口的对象必须包含接口中定义的属性和方法。

* 接口是通过interface关键字定义的,语法格式如下:

* interface 接口名 {

*  属性名: 类型;

*  方法名(): 返回值类型;

* }

* 示例:

* interface Person {

*  name: string;

*  age: number;

*  sayHello(): void;

* }

*

* 联合类型:

* 就是将多个类型合并为一个类型,可以通过|符号进行类型的合并。

* 示例:

* let name: string | number;

*

* 交叉类型:

* 就是将多个类型合并为一个类型,可以通过&符号进行类型的合并。

* 示例:

* interface Person {

*  name: string;

*  age: number;

* }

* interface Student {

*  grade: string;

* }

* let person: Person & Student;

*

* 类型声明:

* 就是将一个变量或者函数的类型进行声明,可以通过冒号:进行类型的声明。

* 示例:

* let name: string;

*

*

* 声明文件:

* 就是将类型声明单独抽离出来,放到一个单独的文件中,然后通过import语句引入到其他文件中。

* 声明文件的文件后缀名是.d.ts,语法格式如下:

* declare module '模块名' {

*  export interface Person {

*    name: string;

*    age: number;

*  }

* }

* 示例:

* declare module 'person' {

*  export interface Person {

*    name: string;

*    age: number;

*  }

* }

*

* 泛型:

* 就是将类型参数化,可以在函数、类、接口中使用泛型,提高代码的复用性。

* 泛型是通过<>符号进行类型参数的定义,语法格式如下:

* function fn<T>(arg: T): T {

*  return arg;

* }

*

* 示例:

* let result: string = fn<string>('hello');

*

*

*

* 模块:

* 就是将多个类型、变量、函数等封装到一个模块中,然后通过export关键字导出模块中的内容,通过import关键字引入模块中的内容。

* 模块是通过export关键字导出模块中的内容,通过import关键字引入模块中的内容,语法格式如下:

* export { Person, Student };

* import { Person, Student } from './person';

*

* 命名空间:

* 就是将多个类型、变量、函数等封装到一个命名空间中,然后通过export关键字导出命名空间中的内容,通过import关键字引入命名空间中的内容。

* 命名空间是通过namespace关键字定义的,语法格式如下:

* namespace 命名空间名 {

*  export interface Person {

*    name: string;

*    age: number;

*  }

*  export interface Student {

*    grade: string;

*  }

* }

* import { Person, Student } from './person';

*

* 命名空间和模块:

* 命名空间和模块是两种不同的封装方式,命名空间是通过namespace关键字定义的,模块是通过export关键字定义的。

*

相关文章

网友评论

      本文标题:typescript

      本文链接:https://www.haomeiwen.com/subject/cjyhhjtx.html