# 其他
# 内置对象
内置对象指根据标准(ECMAScript/DOM)在全局作用域上存在的对象
# ECMAScript内置对象
- Boolean
- Number
- String
- Date
- RegExp
- Error
let bool: Boolean = new Boolean(0)
let num: Number = new Number(true)
let str: String = new String('abc')
let tday: Date = new Date()
let reg: RegExp = /^1/
let err: Error = new Error('err msg')
console.log(bool, num, str, tday, reg, err)
# BOM/DOM内置对象
- Window
- Document
- HTMLElement
- DocumentFragment
- Event
- NodeList
let bool: Boolean = new Boolean(0)
let num: Number = new Number(true)
let str: String = new String('abc')
let tday: Date = new Date()
let reg: RegExp = /^1/
let err: Error = new Error('err msg')
console.log(bool, num, str, tday, reg, err)
const div: HTMLElement = document.getElementById('#test')
const divs: NodeList = document.querySelectorAll('div')
document.addEventListener('click', (event: MouseEvent) => {
console.log(event.target)
})
const fragment: DocumentFragment = document.createDocumentFragment()
console.log(div)
console.log(divs)
console.log(fragment)
Javascript中有很多内置对象,可以直接在Typescript中当作现有类型使用
# 声明文件
当引用第三方库时,需要引用ta们的声明文件以获得对应的代码补全、接口提示等功能
如使用JQuery
时,通常是在script
标签引入JQuery
,就可以使用全局变量$ || JQuery
但Typescript中,编译器不知道$ || JQuery
是什么意思
JQuery('#foo') // 报错: Cannot find name 'jQuery'.
要正常使用第三方库,需要👇
编写声明文件
- 把声明语句放在单独的文件,格式:
xxx.d.ts
, 如JQuery.d.ts
,ts会自动解析项目中所有声明文件 - 【推荐】第三方库会定义对应的声明文件库,库文件名:
@types/xxx
,如npm install @types/jquery --save-dev
- 把声明语句放在单独的文件,格式:
编写声明语句
- 使用
declare
关键字 declare var
没有真正定义一个变量,只是定义了全局变量JQuery的类型,仅用于编译时的检查,编译完会删除
- 使用
declare var JQuery: (selector: string) => any
JQuery('#foo')
// 编译结果
JQuery('#foo')
← 泛型