全国购网站建设,网页小游戏在线玩无需登录,有哪些网站可以做代理,开发公司个人总结作用
1、为已存在js库提供类型信息#xff0c;这样在ts项目中使用这些库时候#xff0c;就像用ts一样#xff0c;会有代码提示、类型保护等机制
2、项目内共享类型#xff1a;如果多个.ts文件中都用到同一个类型#xff0c;此时可以创建.d.ts文件提供该类型#xff0c;…作用
1、为已存在js库提供类型信息这样在ts项目中使用这些库时候就像用ts一样会有代码提示、类型保护等机制
2、项目内共享类型如果多个.ts文件中都用到同一个类型此时可以创建.d.ts文件提供该类型实现类型共享。
有哪些
内置的类型声明文件 TS为JS运行时可用的所有标准化内置API都提供了声明文件 像window、document 等 BOM、DOM API 也都有相应的类型声明 第三方库的类型声明 正常导入该库TS就会自动加载库自己的类型声明文件
如何编写类型声明文件
类型声明文件中只能有类型定义 和 类型声明不能包含其他执行代码
1、实现一个项目内共享类型文件
export type CustomArray (number | string)[]
export type AddFunc (a: number, b: number) void
export interface PersonConfig {age: number,name: string,say(): void
}
// 下面代码会报错
//function add() {
// console.log(1);
//}然后再其他用到这些类型的地方引入即可
2、为已存在js库提供类型信息 将js迁移到ts 或者 创建的js库给别人的ts项目使用时候可以提供类型声明文件 在导入.js文件时TS会自动加载与.js同名的.d.ts文件以提供类型声明。 对于let、function等具有双重含义(在JS、TS中都能用应该使用declare 关键字明确指定此处用于类型声明。 // 类型提供好以后需要使用模块化方案中提供的模块化语法来导出声明好的类型。 // 然后才能在其他的.ts 文件中使用 // 如果没有导出即使js文件导出了但是声明文件没有导出在ts当中也是没法使用的
// 类型定义并且导出 在需要用到的地方需要导入才能用
export type CustomArray (number | string)[]
export type AddFunc (a: number, b: number) void
export interface PersonConfig {age: number,name: string,say(): void
}// 类型声明 同文件名会被自动导入
declare let a: number;
declare function add(a: number): void;// 类型提供好以后需要使用模块化方案中提供的模块化语法来导出声明好的类型。
// 然后才能在其他的.ts 文件中使用
// 也可以导出 自定义类型如果需要使用到的话
export { a, add, CustomArray, AddFunc, PersonConfig }用法
1、被通过import导入使用其中暴露的类型定义和变量声明。
2、和相关模块关联为模块进行类型声明。
对于第二种用法声明文件如何同相关模块关联呢
比如有个第三方包名字叫foo那么TypeScript会在node_modules/foo中根据其package.json的types和typing字段查找库自带的声明文件查找到的声明文件被作为该模块的声明文件 TypeScript也会在node_modules/types/foo/目录中查找声明文件如果能找到就被作为foo模块的声明文件 TypeScript还会在我们的项目中查找.d.ts文件如果遇到declare module foo’语句则该声明被用作foo模块的声明。