[英]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.