1.声明文件的写法 declare(没有确切的含义 只是为了防止出错)
就好像我们全局要写一些变量,但是没有,我们就得先声明
// 声明语法,用于引用第三放模块时 无法找到变量的类型, 通过declare后使用
declare let a:string;
declare function fn():void;
declare class Person{
constructor(name:string)
}
declare interface tomato {
color:string
}
declare enum Seasons {
Spring,
Summer
}
2.举例,对于jquery
有的时候在开发时引入了一些第三方模块 会发现他们不是ts写的,那么这个时候就会报错
import jquery from 'jquery';
通过declare来声明变量,这个声明只是为了避免报错的 没有任何意义
jquery.d.ts
declare function $(selector:string):{
css(val:object):void
height(val:string):void
width(val:string):void
}
declare namespace ${
namespace fn{
function extend():void
}
}
declare namespace ${
const a = 1;
}
export default $
- declare中的内容 不需要默认导出,也不用declare了
默认没有import 和 export 这里的声明就是全局的
declare namespace A {
const a:string // declare中的内容 不需要默认导出,也不用declare了
}
declare module '*.vue' {
const component:object;
export default component
}
declare module '*.jpg'{}
- 在全局下声明模块
// 可以考虑用接口来实现 接口可以和接口合并
declare global{ // 在全局下声明模块
interface String{
double():string
}
}
String.prototype.double = function () {
return 'acbc'
}
export {}