// app.ts 使⽤三斜线指令引⼊声明⽂件///import a, {geta, ta}from'simple'console.log(a)
// /node_modules/simple/lib1.js// 导出⼀个类functionAb(){this.a =1}Ab.prototype.ta =function(num){this.a =
num}a =function(num){returnthis.a}exports.Ab = Ab
长江水位公告
黄瓜凉拌// 在type.d.ts⽂件中添加declare module"simple/lib1"{ exportclassAb { private a; ta(n: number):void; geta(): number }}
// app.ts 使⽤三斜线指令引⼊声明⽂件/// importa, {geta, ta}from'simple'import {Ab}from'simple/lib1'// 得以验证
console.log(newAb())console.log(a)
// /node_modules/simple/lib2.js// 只导出⼀个函数ports =functiongetRandom(){returnMath.random()}公司年会节目
买钓鱼竿
林锦成//在type.d.ts⽂件中添加declaremodule"simple/lib2"{letgetRandom:()=>number;export= getRandom;}
/
/ app.ts 使⽤三斜线指令引⼊声明⽂件/// import a, {geta, ta} from'simple'import {Ab} from'simple/lib1'import getRandom
=require('simple/lib2')// 得以验证console.log(getRandom())console.log(newAb())console.log(a)
上⾯给出的只是全局声明的写法,下⾯会针对上⾯的js库重新换成模块导出声明的写法
波旁家族即使去除该指令types.d.ts⽂件还在的话
⽬录改成如下形式,app.ts⽂件⽆需做⼤的改动只需要将三斜线指令去除即可,⼀般情况下即使去除该指令types.d.ts⽂件还在的话TypeScript编译器还是会将该⽂件加载编译
漫画人物画TypeScript编译器还是会将该⽂件加载编译,这与配置有关。
共工怒触不周山并且根据我的观察发现,修改声明⽂件并不会马上起作⽤,⽐如在声明⽂件中加了⼀个⽅法,在使⽤的时候TypeScript编译器还是会报错说这个类型没有这个⽅法,需要重启webpack-dev-rver(我⽤的是这个)
// ⽂件⽬录结构如下-- project |-- node_modules |-- simple |-- index.js |-- index.d.ts |-- lib1.js |-- lib1.d.ts |-- lib2.js |--lib2.d.ts |-- src |-- app.ts
// index.d.tslet a: number;exportfunctiongeta(): void;exportfunctionta(n: number): void;exportdefaulta;
// app.tsimporta, {geta, ta}from'simple'// 得以验证console.log(geta())
//lib1.d.tsfunctionAb(){this.a =1}Ab.prototype.ta =function(num){this.a = num}a =function()
{returnthis.a}exports.Ab = Ab