簡體   English   中英

如何為返回新類對象的函數指定類型

[英]How to specify a type for a function that returns a new class object

我正在使用Google Closure編譯器對我的JavaScript代碼進行類型檢查。 我有一個函數,該函數創建然后返回一個新的“類”。 即,一個函數返回一個可以應用新對象的對象並返回該類的“實例”對象。 例如,

var newclass = createFactory('Car');
var acar = new newclass();
acar.show();     // executes newclass.prototype.show()
newclass.staticmethod();   // executes newclass.staticmethod()

show和static方法是由createFactory方法創建的。

我在將newclass的類型定義為google封閉編譯器時遇到了麻煩,以便它將newclass識別為具有類方法staticmethod和實例方法show的構造函數。

任何和所有幫助將不勝感激。

假設生成的工廠具有一些通用的基類或接口(我將使用KnownType)。 這應該可以解決問題:

/** @type {function(new:KnownType)} */
var newClass = createFactory();

這表示“ newClass”是使用“ new”調用的函數,該函數返回KnownType的實例,在這種情況下,它被聲明為不帶任何參數,但是可以。

CreateFactory可以將此類型聲明為其返回類型,也可以將其聲明為通常使用該類型的任何地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM