ts内置对象
ECMAScript 的内置对象 如果是new 对象的,它的类型就是那个对象的名字 let date: Date = new Date() let regex: RegExp = /12/ let
ts内置对象
发布时间:2023-10-12 (2023-10-12)

ECMAScript 的内置对象

如果是new 对象的,它的类型就是那个对象的名字

let date: Date = new Date()
let regex: RegExp = /12/
let regex1: RegExp = new RegExp(/\s+/)
let err: Error = new Error("123")

DOM与BOM

常见的DOM类型

都在HTMLElementTagNameMap里面

"a": HTMLAnchorElement;
"body": HTMLBodyElement;
"button": HTMLButtonElement;
"canvas": HTMLCanvasElement;
"div": HTMLDivElement;
"footer": HTMLElement;
"form": HTMLFormElement;
"h1": HTMLHeadingElement;
"head": HTMLHeadElement;
"header": HTMLElement;
"html": HTMLHtmlElement;
"title": HTMLTitleElement;
"input": HTMLInputElement;
"img": HTMLImageElement;
const body: HTMLElement = document.body;
const divList: NodeList = document.querySelectorAll('div');
document.addEventListener('click', (e: MouseEvent) => {
   
});
let l :Location = location
let s:Storage = localStorage
let s1:Storage = sessionStorage
let c:string = document.cookie

Promise

使用fetch 请求一个json文件,把响应的数据显示出来

json文件

interface dataType {
    name: string
    age: number
}

interface responseType<T> {
    code: number
    data: T[]
    msg: string
}


fetch("/data.json").then((response: Response) => response.json()).then((res: responseType<dataType>) => {

    let app = document.getElementById("app") as HTMLDivElement

    res.data.forEach((item: dataType) => {
        let li = document.createElement("li")
        li.innerHTML = `
        <span>name: ${item.name}</span> <span style="margin-left: 10px">age:${item.age}</span>
        `
        app.append(li)
    })
})

改成以下这种

interface dataType {
    name: string
    age: number
}

interface responseType<T> {
    code: number
    data: T[]
    msg: string
}

async function getList():Promise<responseType<dataType>>{
    let response = await fetch("/data.json")
    return response.json()
}
async function getData(){
    let res:responseType<dataType> = await getList()
    let app = document.getElementById("app") as HTMLDivElement
    res.data.forEach((item:dataType)=>{
        let li = document.createElement("li")
        li.innerHTML = `
        <span>name: ${item.name}</span> <span style="margin-left: 10px">age:${item.age}</span>
        `
        app.append(li)
    })
}

getData()

注意:tsc index.ts可能会报错,直接执行 tsc命令编译就行

错误原因是,tsc 编译单个文件会使用默认的tsconfig.json的配置,而且编译单个文件无法指定配置文件