(1). 场景:安装第三方库,在引入时飘红,报找不到模块:
(2). 原因:
①. 在使用Typescript过程中,第三方类库并没有ts的.d.ts类型的声明文件
(3). 解决方案:
①. 添加声明文件
②. 在src目录下新建一个types目录
③. 新建一个types/index.d.ts文件,在文件中添加代码
declare module "第三方类库名"
// extends跟其它语言一样会继承,并不是没有一个属性
// <T = Element>表示不指定类型,默认的类型是Element
interface FormEvent<T = Element> extends SyntheticEvent<T> {
}
interface SyntheticEvent<T = Element, E = Event> extends BaseSyntheticEvent<E, EventTarget & T, EventTarget> {}
interface BaseSyntheticEvent<E = object, C = any, T = any> {
nativeEvent: E;
currentTarget: C;
target: T;
bubbles: boolean;
cancelable: boolean;
defaultPrevented: boolean;
eventPhase: number;
isTrusted: boolean;
preventDefault(): void;
isDefaultPrevented(): boolean;
stopPropagation(): void;
isPropagationStopped(): boolean;
persist(): void;
timeStamp: number;
type: string;
}
interface HTMLFormElement extends HTMLElement { }
interface HTMLElement extends Element, DocumentAndElementEventHandlers, ElementCSSInlineStyle, ElementContentEditable, GlobalEventHandlers, HTMLOrSVGElement {
accessKey: string;
readonly accessKeyLabel: string;
.....
}