1 Star 0 Fork 15

Mr.chen/TypeScript教程

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
script.ts 2.15 KB
一键复制 编辑 原始数据 按行查看 历史
技术蛋老师 提交于 2022-10-04 18:11 . 完整代码
const url: string = 'https://api.thecatapi.com/v1/images/search';
const button: HTMLButtonElement | null = document.querySelector('button');
const tableBody: HTMLTableElement | null = document.querySelector('#table-body');
interface CatType {
id: string;
url: string;
height: number;
width: number;
test?: boolean;
}
class Cat implements CatType {
id: string;
url: string;
height: number;
width: number;
constructor(id: string, url: string, height: number, width: number) {
this.id = id;
this.url = url;
this.height = height;
this.width = width;
}
}
class WebDisplay {
public static addData(data: CatType): void {
const cat: Cat = new Cat(data.id, data.url, data.height, data.width);
const tableRow: HTMLTableRowElement = document.createElement('tr');
tableRow.innerHTML = `
<td>${cat.id}</td>
<td><img src="${cat.url}" /></td>
<td>${cat.height.toString()}</td>
<td>${cat.width.toString()}</td>
<td>${cat.url}</td>
<td><a href="#">X</a></td>
`;
tableBody?.appendChild(tableRow);
}
public static deleteData(deleteButton: HTMLAnchorElement): void {
const td = deleteButton.parentElement as HTMLTableCellElement;
const tr = td.parentElement as HTMLTableRowElement;
tr.remove();
}
}
async function getJSON<T>(url: string): Promise<T> {
const response: Response = await fetch(url);
const json: Promise<T> = await response.json();
return json;
}
async function getData(): Promise<void> {
try {
const json: CatType[] = await getJSON<CatType[]>(url);
const data: CatType = json[0];
WebDisplay.addData(data);
}
catch (error: Error | unknown) {
let message: string;
if (error instanceof Error) {
message = error.message;
} else {
message = String(error);
}
console.log(error);
}
}
button?.addEventListener<'click'>('click', getData);
tableBody?.addEventListener<'click'>('click', (ev: MouseEvent) => {
WebDisplay.deleteData(<HTMLAnchorElement>ev.target);
});
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xuchenchen_hbh/type-script-tutorial.git
git@gitee.com:xuchenchen_hbh/type-script-tutorial.git
xuchenchen_hbh
type-script-tutorial
TypeScript教程
master

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385