我遇到了一些麻烦,弄清楚如何在接口中定义构造函数。我可能完全误会了什么。但我已经寻找答案很久了,我找不到任何与此相关的东西。
如何在TypeScript类中实现以下接口:
interface MyInterface {
new ( ... ) : MyInterface;
}
Anders Hejlsberg创建了一个界面,其中包含类似于这段视频中的内容(大约14分钟)。但我一辈子都不能在一个班级里实现这一点。
interface MyInterface {
new () : MyInterface;
}
class test implements MyInterface {
constructor () { }
}
这对我来说不是编译,当我尝试编译时,我得到“类'test'声明接口'myinterface'但没有实现它:类型'myinterface'需要构造签名,但类型'test'缺少一个”。
编辑:
所以在研究这一点后,给出了更多的反馈。
interface MyInterface {
new () : MyInterface;
}
class test implements MyInterface {
constructor () => test { return this; }
}
因此,我可能想出了一个主意,为什么可以在接口中定义它,而不能在TypeScript类中实现它。以下工作:
var MyClass = (function () {
function MyClass() { }
return MyClass;
})();
interface MyInterface {
new () : MyInterface;
}
var testFunction = (foo: MyInterface) : void => { }
var bar = new MyClass();
testFunction(bar);
那么,这仅仅是TypeScript的一个特性,让您接口JavaScript吗?或者是否可以在TypeScript中实现它,而不必使用JavaScript实现类?
接口中的构造签名不能在类中实现;它们仅用于定义现有的JSAPI,这些API定义了一个可“新建”的函数。下面是一个涉及接口new
签名的示例:
interface ComesFromString {
name: string;
}
interface StringConstructable {
new(n: string): ComesFromString;
}
class MadeFromString implements ComesFromString {
constructor (public name: string) {
console.log('ctor invoked');
}
}
function makeObj(n: StringConstructable) {
return new n('hello!');
}
console.log(makeObj(MadeFromString).name);
这为您可以调用makeobj
的内容创建了一个实际约束:
class Other implements ComesFromString {
constructor (public name: string, count: number) {
}
}
makeObj(Other); // Error! Other's constructor doesn't match StringConstructable
提供的参数与调用目标的任何签名都不匹配:类型'new()=>foo'和'Bar'的构造签名不兼容:类型'Bar'需要构造签名,但类型'foo'缺少一个(c:Bar)=>Bar Foo的构造函数类型是()=>Foo,我认为Bar就是这么说的。我是不是漏掉了什么?
问题内容: 据我所知,我们无法实例化接口,那么这是怎么发生的呢? 问题答案: 您无法实例化接口,但是可以为实现该接口的类的对象提供接口的引用,因此在代码中,您正在实现接口并创建该类的对象并提供该类的引用。
我注意到在Dart中可以创建一个const构造函数。在文档中,它说< code>const一词用于表示编译时常数。 我想知道当我使用构造函数创建对象时会发生什么。这是否像一个不可变对象,它总是相同的并且在编译时可用?构造函数的概念实际上是如何工作的?const构造函数与常规构造函数有何不同?
有人在Itext 7中玩过PdfSignatureFormField的签名外观吗?如果是的话,你能给我一点解释和/或一个小例子吗 提前感谢 大卫L。
这是我第一次尝试将更复杂的对象存储到数据库中。我需要一些关于数据库设计的帮助。 要存储并从数据库中重新生成的recipe对象 最复杂的部分是对象。每个食谱可以有不同数量的步骤和不同的配料分配给每一个步骤。 我做了另一个设计,其中与以及与相结合。我认为第一种布局更容易查询,因为我只需查看就可以通过进行搜索,但我不确定。有什么想法吗?
使用Java8泛型,可以使用构造函数引用初始化该变量,如下所示: Java编译器如何将其转换为字节码? 我知道对于其他类型,比如,它可以使用一个指令,该指令指向字符串构造函数,这只是一个具有特殊含义的方法。