ts 的代码最后会编译成 .js 的 js 代码供他人使用,这个时候,类型信息就丢失了,所以 ts 编译器会自动根据 .ts 中的信息,生成对外的 .d.ts 文件,和生成的 js 文件搭配使用。
tips:
- d.ts 文件中的所有类型(类型别名和接口除外)及变量都要使用 declare 定义,或者使用 export 将其导出,否则会抛出错误
- .d.ts 文件顶级声明 declare 最好不要跟 export 同级使用,不然在其他ts引用这个 .d.ts 的内容的时候,就需要手动 import 导入了
- .d.ts文件里如果顶级声明不用export的话,declare 和直接写 type、interface 效果是一样的,在其他地方都可以直接引用
declare 声明模块,这样,我们可以在ts中引入相关的文件而不报错了
declare module '*.css';
declare module '*.less';
declare module '*.png';
declare 声明一个变量,对于引入第三方的库特别有效
declare var jQuery: (selector: string) => any;
// 声明变量直接使用
jQuery("#box")
在声明文件中 type
与 interface
也可以不用加 declare
,效果相同
type myType = string | number;
// 两者效果相同
declare type myType = string | number;
PS:目前的三大框架如果是用脚手架搭建的,已经不再需要手动去写这几行代码了,框架本身帮写好了。比如 Umi 创建的项目的 src/typings.d.ts
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务