TypeScript 数据类型02, 一个简单demo图书添加查询
TypeScript 数据类型02, 一个简单demo图书添加查询
TypeScript 数据类型02, 一个简单demo图书添加查询

demo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
interface BaseCRUD<T> {
data: Array<T>;
add: (t: T) => void;
getBookId: (id: number) => T;
getBookName: (name: String) => T;
}

class Book {
id?: number; // todo:fei 在 constructor 没有使用id,所以这里用 ?:
name: string;
price: number;

constructor(name: string, price: number) {
// this.id = 1; // todo:fei这里不使用,注意定义地方
this.name = name;
this.price = price;
}
}

class BookCRUD implements BaseCRUD<Book> {
data: Book[] = [];

add(book: Book): void {
book = {...book, id: Date.now()};
this.data.push(book);
console.log("保存成功");
};

// todo:fei as 类型断言 , @ts-ignore 是忽略检查
getBookId(id: number): Book {
return (this.data.find(item => item.id === id)) as Book; // todo:fei 这里使用下面这种方式也行
// @ts-ignore
// return this.data.find(item => item.id === id);
};

// @ts-ignore
getBookName(name: string): Book {
// @ts-ignore
return this.data.find(item => item.name === name);
}
}

const bookCurd = new BookCRUD();
bookCurd.add(new Book("论语", 100));
bookCurd.add(new Book('史记', 200));
console.log(bookCurd.data);

console.log(bookCurd.getBookName("论语"));
console.log(bookCurd.getBookId((bookCurd.data[0].id) as number));

TypeScript 手册
TypeScript 备用手册1
TypeScript 备用手册2