举个栗子:项目最常使用props接口
// 定义props
interface IProps {
dataSource: [], // 数据
deleteItemDispatch(index: number): void, // 事件:参数是数值,没有返回
deleteItemBatch(indexArr: number[]): void// 事件:参数是数字数组,没有返回
editItemBatch(key: number, newUserInfo: any): void,// 事件:参数一是数字参数二是对象,没有返回
}
// 子组件
function Conference(props:IProps) {
// props数据
const { dataSource } = props;
// props事件
const {
deleteItemDispatch,
deleteItemBatch,
editItemBatch
} = props;
}
// 还行
基础类型
// 布尔值
let isDone: boolean = false;
// 数字
let decLiteral: number = 6
// 字符串
let name: string = "bob";
// 数组
let list: number[] = [1, 2, 3];
// 数组2
let list: Array<number> = [1, 2, 3];
// Any任何: 一般第三方代码库的值
let notSure: any = 4;
notSure = () => {} // 成功
// Void函数没有返回值
let unusable: void = undefined;
// Null 和 Undefined 用处不大
let u: undefined = undefined;
let n: null = null;
// Never 类型是那些总是会抛出异常或根本就不会有返回值
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
元祖Tuple
元组类型允许表示一个已知元素数量和类型的数组 string 和 number 类型的元组。
// 元祖Tuple
let x: [string, number];
x = ['hello', 10]; // OK
// Initialize it incorrectly
x = [10, 'hello']; // Error
// 当访问一个越界的元素,会使用联合类型替代
x[3] = 'world';
x[6] = true; // Error, 布尔不是(string | number)类型
枚举
enum 类型是对 JavaScript 标准数据类型的一个补充。
// 枚举
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
// 默认情况下,从0开始为元素编号, 也可以手动的指定成员的数值
enum Color {Red = 1, Green, Blue}
let c: Color = Color.Green;
Obeject对象
declare function create(o: object | null): void;
create({ prop: 0 }); // OK
create(null); // OK
create(42); // Error
复杂类型类型
// 接口
interface Person {
name: string;
age?: number; // 可选
}
// 声明变量 man 为 Person 接口类型
let man: Person = {name: 'joye', age: 30};
// 定义类
class TypeA {
// ...
}
// 声明TypeA类型
let a: TypeA;
// 赋值TypeA类型
a = new TypeA();