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=
工作不卷,真朝九晚五,不加班,五险两金拉满交的。带有一定科研性质的单位,单位不错,有意向的联系我。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.