Test.js 代码
function SayNameTest (params) { this.name = params.name this.age = params.age } export default SayNameTest 然后编写一个声明文件 Test.d.ts 代码
interface SayNameTestType { name: string, age: number } interface Common <T, P extends SayNameTestType[]>{ new (...args: P): T; } export declare const SayNameTest: Common < SayNameTestType, SayNameTestType[] > 然后在其他的 ts 文件中 new test.js 中的 SayNameTest 去生成新的对象。 mian.ts
import SayNameTest from 'test' const sayName = new SayNameTest({name: '咸菜', age: 18}) console.log(sayName) 这时候在 main.ts 中就开始报错了,说 xxx.SayNameTest is not a constructor
也就是 ts 不认这种使用构造函数模式去封装对象的方法。
提这个问题的原因背景: 现在项目使用的语言是 ts ,但是项目要封装很多旧的 js 类库,这种旧的 js 类库基本都是大量的使用
构造函数模式去封装对象,也就是实现现在 es6 使用的 class 。而这时候要把第三方的类库转到 ts 中能用的话,写上声明文件是不管用的,求教各位大佬,这种情况你们有遇见过没?
PS: 我们单位还在招人,下面是招聘信息
要求是研究生学历,双 211 或者单研究生 985 都行。
单位名称:中煤科工西安研究院。
联系方式:
邮箱:bHBsZWU3ODMwQGdtYWlsLmNvbQ==
绿色聊天软件:bGlwYzA2MTc=
工作不卷,真朝九晚五,不加班,五险两金拉满交的。带有一定科研性质的单位,单位不错,有意向的联系我。
