【发布时间】:2017-01-14 12:19:03
【问题描述】:
给定以下接口:
interface Person {
constructor: Function;
getFullName(): string;
}
interface PersonConstructor {
new (firstName: string, lastName: string): Person;
prototype: Person;
createPerson(firstName: string, lastName: string): Person;
}
我想使用 JS 而不是 TS 自定义编写一个类,如下所示:
var Person = (() => {
function Person(firstName: string, lastName: string) {
var _firstName = firstName;
var _lastName = lastName;
this.getFullName = () => _firstName + " " + _lastName;
}
Person.createPerson = (firstName: string, lastName: string): Person => new Person(firstName, lastName);
return Person;
})();
但我收到以下错误:
类型 '(firstName: string, lastName: string) => void'
我还希望能够将我的自定义 JS 用作 TypeScript 中的基类...
class FamousPerson extends Person {
}
但我收到此错误...
Type '(firstName: string, lastName: string) => void' 不是 构造函数类型。
如何让我的自定义 JS 尊重我的界面?
注意:接口遵循 TS 1.4 中采用的相同构造函数(静态接口)模式
【问题讨论】:
标签: typescript